Sobes.tech
Junior — Middle

Vysvětlete koncept vzoru 'Abstraktní továrna' a jak se používá při navrhování softwarových systémů.

sobes.tech AI

Odpověď od AI

Vzorek "Abstraktní továrna" je tvůrčí vzor návrhu, který poskytuje rozhraní pro vytváření rodin souvisejících nebo závislých objektů bez specifikace jejich konkrétních tříd.

Myšlenka je izolovat klientský kód od konkrétních implementací vytvářených objektů, což umožňuje měnit rodiny produktů bez změny kódu, který je používá.

Příklad použití ve Flutteru: Předpokládejme, že máme různé témata vzhledu s sadou widgetů (tlačítka, vstupní pole). Abstraktní továrna vytváří rozhraní pro tvorbu těchto widgetů a konkrétní továrny je implementují pro světlé a tmavé téma.

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

// Klientský kód
void buildUI(WidgetFactory factory) {
  var button = factory.createButton();
  var textField = factory.createTextField();
  // Použití button a textField
}

Tento přístup usnadňuje údržbu a rozšiřování kódu, umožňuje snadné přidávání nových rodin produktů.