Sobes.tech
Junior — Middle

Leg het concept uit van het patroon 'Abstracte fabriek' en hoe het wordt gebruikt in het ontwerp van softwaresystemen.

sobes.tech AI

Antwoord van AI

Het "Abstract Factory"-patroon is een creational design pattern dat een interface biedt voor het maken van families van gerelateerde of afhankelijk objecten zonder hun concrete klassen aan te geven.

Het idee is om de client-code te isoleren van de concrete implementaties van de gemaakte objecten, waardoor het mogelijk is om productfamilies te wisselen zonder de code die ze gebruikt te wijzigen.

Voorbeeld van gebruik in Flutter: Laten we aannemen dat we verschillende ontwerpthema's hebben met een set widgets (knoppen, invoervelden). De abstracte fabriek creëert een interface voor het maken van deze widgets, en concrete fabrieken implementeren deze voor lichte en donkere thema's.

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

// Client-code
void buildUI(WidgetFactory factory) {
  var button = factory.createButton();
  var textField = factory.createTextField();
  // Gebruik van button en textField
}

Deze aanpak vereenvoudigt het onderhoud en de uitbreiding van de code, waardoor het gemakkelijk is om nieuwe productfamilies toe te voegen.