Junior — Middle
Meg tudná magyarázni az absztrakt gyár fogalmát és célját a tervezési mintákban?
sobes.tech MI
Válasz az MI-től
Az absztrakt gyár egy létrehozó tervezési minta, amely egy interfészt biztosít a kapcsolódó vagy függő objektumcsaládok létrehozásához anélkül, hogy meghatározná azok konkrét osztályait.
A minta célja, hogy biztosítsa az olyan objektumok létrehozását, amelyeknek együtt kell működniük, miközben elrejti azok konkrét implementációjának részleteit. Ez akkor hasznos, ha a rendszernek függetlennek kell lennie a termékek létrehozásának, összetételének és bemutatásának módjától.
Példa: egy iOS alkalmazásban használhatunk egy absztrakt gyárat UI-komponensek létrehozására, amelyek különböznek iOS és macOS környezetben, de ugyanazt az interfészt használják.
protocol Button {
func render()
}
class iOSButton: Button {
func render() {
print("iOS stílusú gomb renderelése")
}
}
class MacOSButton: Button {
func render() {
print("macOS stílusú gomb renderelése")
}
}
protocol UIFactory {
func createButton() -> Button
}
class iOSFactory: UIFactory {
func createButton() -> Button {
return iOSButton()
}
}
class MacOSFactory: UIFactory {
func createButton() -> Button {
return MacOSButton()
}
}
// Használat
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // iOS stílusú gomb renderelése