Sobes.tech
Junior — Middle

Magyarázza el az 'Absztrakt gyár' mintázat fogalmát és hogyan használják szoftverrendszerek tervezésében.

sobes.tech MI

Válasz az MI-től

Az "Absztrakt Gyár" minta egy létrehozó tervezési minta, amely interfészt biztosít kapcsolódó vagy függő objektumcsaládok létrehozásához anélkül, hogy meg kellene határozni azok konkrét osztályait.

Az ötlet az, hogy elszigeteljük a klienskódot a létrehozott objektumok konkrét megvalósításaitól, lehetővé téve a termékcsaládok cseréjét anélkül, hogy módosítanánk a azokat használó kódot.

Példa Flutterben: Tegyük fel, hogy különböző témáink vannak widgetekkel (gombok, szövegmezők). Az absztrakt gyár interfészt hoz létre ezeknek a widgeteknek a létrehozására, a konkrét gyárak pedig megvalósítják azokat világos és sötét témákhoz.

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

// Kliens kód
void buildUI(WidgetFactory factory) {
  var button = factory.createButton();
  var textField = factory.createTextField();
  // Használjuk a button-t és a textField-et
}

Ez a megközelítés megkönnyíti a kód karbantartását és bővítését, lehetővé téve új termékcsaládok könnyű hozzáadását.