Sobes.tech
Junior — Middle

Explicați conceptul pattern-ului 'Fabrică abstractă' și modul în care este utilizat în proiectarea sistemelor software.

sobes.tech AI

Răspuns de la AI

Modelul "Fabrică Abstractă" este un pattern de design creational care oferă o interfață pentru crearea familiilor de obiecte interdependente sau legate fără a specifica clasele lor concrete.

Ideea este de a izola codul client de implementările concrete ale obiectelor create, permițând schimbarea familiilor de produse fără a modifica codul care le utilizează.

Exemplu de utilizare în Flutter: Să presupunem că avem diferite teme de design cu un set de widget-uri (buton, câmp de text). Fabrica abstractă creează o interfață pentru crearea acestor widget-uri, iar fabricile concrete le implementează pentru tema clară și cea întunecată.

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();
}

// Cod client
void buildUI(WidgetFactory factory) {
  var button = factory.createButton();
  var textField = factory.createTextField();
  // Utilizare button și textField
}

Această abordare simplifică întreținerea și extinderea codului, permițând adăugarea ușoară a noilor familii de produse.