Sobes.tech
Junior — Middle

Puoi fare un esempio di implementazione del pattern Factory Method nel codice?

sobes.tech AI

Risposta dell'AI

Il pattern Factory Method consente di creare oggetti senza specificare la classe concreta dell'oggetto da creare. In Flutter, è utile per creare widget con logiche diverse.

Esempio di implementazione in Dart:

abstract class Button {
  void render();
}

class AndroidButton implements Button {
  @override
  void render() {
    print('Render pulsante stile Android');
  }
}

class IOSButton implements Button {
  @override
  void render() {
    print('Render pulsante stile iOS');
  }
}

abstract class Dialog {
  Button createButton();

  void render() {
    Button button = createButton();
    button.render();
  }
}

class AndroidDialog extends Dialog {
  @override
  Button createButton() => AndroidButton();
}

class IOSDialog extends Dialog {
  @override
  Button createButton() => IOSButton();
}

void main() {
  Dialog dialog;

  // In base alla piattaforma, creiamo il dialogo necessario
  bool isAndroid = true;
  if (isAndroid) {
    dialog = AndroidDialog();
  } else {
    dialog = IOSDialog();
  }

  dialog.render();
}

In questo esempio, il metodo factory createButton permette alle sottoclassi di creare oggetti di diversi tipi di bottoni, e il codice client lavora con astrazioni.