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.