Junior — Middle
Wyjaśnij koncepcję wzorca 'Fabryka abstrakcyjna' i jak jest używany w projektowaniu systemów programowych.
sobes.tech AI
Odpowiedź od AI
Wzorzec "Abstrakcyjna Fabryka" jest wzorcem kreacyjnym, który zapewnia interfejs do tworzenia rodzin powiązanych lub zależnych obiektów bez konieczności określania ich konkretnych klas.
Idea polega na izolacji kodu klienta od konkretnych implementacji tworzonych obiektów, umożliwiając zmianę rodzin produktów bez modyfikacji kodu, który ich używa.
Przykład użycia w Flutter: Załóżmy, że mamy różne motywy graficzne z zestawem widżetów (przyciski, pola tekstowe). Abstrakcyjna fabryka tworzy interfejs do tworzenia tych widżetów, a konkretne fabryki implementują je dla jasnego i ciemnego motywu.
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();
}
// Kod klienta
void buildUI(WidgetFactory factory) {
var button = factory.createButton();
var textField = factory.createTextField();
// Użycie button i textField
}
Takie podejście upraszcza utrzymanie i rozbudowę kodu, umożliwiając łatwe dodawanie nowych rodzin produktów.