Sobes.tech
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.