Sobes.tech
Junior — Middle

Vysvetlite koncept vzoru 'Abstraktná továreň' a ako sa používa pri navrhovaní softvérových systémov.

sobes.tech AI

Odpoveď od AI

Vzorka "Abstraktná továreň" je tvorivý vzor návrhu, ktorý poskytuje rozhranie na vytváranie rodín súvisiacich alebo závislých objektov bez špecifikácie ich konkrétnych tried.

Myšlienka je izolovať klientsky kód od konkrétnych implementácií vytvorených objektov, čo umožňuje meniť rodiny produktov bez zmeny kódu, ktorý ich používa.

Príklad použitia vo Flutteri: Predpokladajme, že máme rôzne témy dizajnu s množinou widgetov (tlačidlá, vstupné polia). Abstraktná továreň vytvára rozhranie na tvorbu týchto widgetov a konkrétne továrne ich implementujú pre svetlú a tmavú tému.

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

// Klientska časť
void buildUI(WidgetFactory factory) {
  var button = factory.createButton();
  var textField = factory.createTextField();
  // Používame button a textField
}

Tento prístup zjednodušuje údržbu a rozširovanie kódu, umožňuje ľahké pridávanie nových rodín produktov.