Sobes.tech
Junior — Middle

Selgitage 'Abstraktse tehase' mustri kontseptsiooni ja kuidas seda kasutatakse tarkvarasüsteemide kavandamisel.

sobes.tech AI

Vastus AI-lt

"Kokkuvõttev tehas" (Abstract Factory) on loomise muster, mis pakub liidest seotud või sõltuvate objektide perekondade loomise jaoks ilma nende konkreetseid klasse määratlemata.

Idee on isoleerida kliendikood loodavate objektide konkreetsetest rakendustest, võimaldades toote perekondi vahetada ilma nende kasutavat koodi muutmata.

Näide Flutteris: Oletame, et meil on erinevad kujundusteemad koos vidinate (nupud, tekstiväljad) komplektiga. Abstraktne tehas loob liidese nende vidinate loomiseks ning konkreetsed tehased rakendavad neid heleda ja tumeda teema jaoks.

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

// Klientkood
void buildUI(WidgetFactory factory) {
  var button = factory.createButton();
  var textField = factory.createTextField();
  // Kasutame button ja textField
}

See lähenemine lihtsustab koodi hooldust ja laiendamist, võimaldades hõlpsasti lisada uusi toote perekondi.