Junior — Middle
Можете ли да објасните концепт апстрактне фабрике и њену сврху у дизајнерским образцима?
sobes.tech АИ
Одговор од АИ
Apstraktna fabrika je kreacioni obrazac dizajna koji pruža interfejs za kreiranje porodica povezanih ili zavisnih objekata bez specificiranja njihovih konkretnih klasa.
Svrha obrasca je da obezbedi kreiranje objekata koji treba da rade zajedno, skrivajući detalje njihove konkretne implementacije. Ovo je korisno kada sistem treba da bude nezavistan od načina na koji se proizvodi kreiraju, sastavljaju i prikazuju.
Primer: u iOS aplikaciji može se koristiti apstraktna fabrika za kreiranje UI komponenti koje izgledaju različito na iOS i macOS, ali imaju isti interfejs.
protocol Button {
func render()
}
class iOSButton: Button {
func render() {
print("Renderovanje iOS stila dugmeta")
}
}
class MacOSButton: Button {
func render() {
print("Renderovanje macOS stila dugmeta")
}
}
protocol UIFactory {
func createButton() -> Button
}
class iOSFactory: UIFactory {
func createButton() -> Button {
return iOSButton()
}
}
class MacOSFactory: UIFactory {
func createButton() -> Button {
return MacOSButton()
}
}
// Upotreba
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // Renderovanje iOS stila dugmeta