Sobes.tech
Junior — Middle

Spiega il concetto del pattern 'Factory astratta' e come viene utilizzato nella progettazione di sistemi software.

sobes.tech AI

Risposta dell'AI

Il pattern "Abstract Factory" è un pattern creazionale che fornisce un'interfaccia per creare famiglie di oggetti correlati o dipendenti senza specificare le loro classi concrete.

L'idea è isolare il codice client dalle implementazioni concrete degli oggetti creati, permettendo di cambiare le famiglie di prodotti senza modificare il codice che le utilizza.

Esempio di utilizzo in Flutter: Supponiamo di avere diversi temi di design con un set di widget (bottoni, campi di testo). La factory astratta crea un'interfaccia per creare questi widget, e le factory concrete le implementano per temi chiari e scuri.

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

// Codice cliente
void buildUI(WidgetFactory factory) {
  var button = factory.createButton();
  var textField = factory.createTextField();
  // Utilizzo di button e textField
}

Questo approccio semplifica la manutenzione e l'estensione del codice, permettendo di aggiungere facilmente nuove famiglie di prodotti.