Junior — Middle
Објасните концепт патерна 'Апстрактна фабрика' и како се користи у пројектовању софтверских система.
sobes.tech АИ
Одговор од АИ
Шаблон "Апстрактна фабрика" је креирајући образац који пружа интерфејс за креирање породица повезаних или зависних објеката без навођења њихових конкретних класа.
Идеја је да се изолује клиентски код од конкретних имплементација створених објеката, омогућавајући промену породица производа без измене кода који их користи.
Пример употребе у Flutter-у: Замислите да имамо различите теме дизајна са скупом widget-ова (дугмади, поља за унос). Апстрактна фабрика креира интерфејс за креирање ових widget-ова, а конкретне фабрике их реализују за светлу и тамну тему.
abstract class WidgetFactory {
Button createButton();
TextField createTextField();
}
class LightThemeFactory implements WidgetFactory {
@override
Button createButton() => LightButton();
@override
TextField createTextField() => LightTextField();
}
class DarkThemeFactory implements WidgetFactory {
@override
Button createButton() => DarkButton();
@override
TextField createTextField() => DarkTextField();
}
// Клијентски код
void buildUI(WidgetFactory factory) {
var button = factory.createButton();
var textField = factory.createTextField();
// Користимо button и textField
}
Овај приступ олакшава одржавање и проширење кода, омогућавајући лако додавање нових породица производа.