Junior — Middle
Kannst du ein Beispiel für die Implementierung des Factory Method Patterns im Code geben?
sobes.tech KI
Antwort von AI
Das Fabrikmuster ermöglicht die Erstellung von Objekten, ohne die konkrete Klasse des zu erstellenden Objekts anzugeben. In Flutter ist dies praktisch, um Widgets mit unterschiedlicher Logik zu erstellen.
Beispielimplementierung in Dart:
abstract class Button {
void render();
}
class AndroidButton implements Button {
@override
void render() {
print('Android-Style-Button rendern');
}
}
class IOSButton implements Button {
@override
void render() {
print('iOS-Style-Button rendern');
}
}
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;
// Plattformabhängig den benötigten Dialog erstellen
bool isAndroid = true;
if (isAndroid) {
dialog = AndroidDialog();
} else {
dialog = IOSDialog();
}
dialog.render();
}
In diesem Beispiel ermöglicht die Fabrikmethode createButton den Unterklassen, Objekte verschiedener Button-Typen zu erstellen, und der Client-Code arbeitet mit Abstraktionen.