Junior — Middle
Μπορείς να δώσεις ένα παράδειγμα υλοποίησης του μοτίβου εργοστασιακής μεθόδου στον κώδικα;
sobes.tech AI
Απάντηση από AI
Το πρότυπο Factory Method επιτρέπει τη δημιουργία αντικειμένων χωρίς να καθορίζεται η συγκεκριμένη κλάση του αντικειμένου που δημιουργείται. Στο Flutter, αυτό είναι βολικό για τη δημιουργία widget με διαφορετική λογική.
Παράδειγμα υλοποίησης σε Dart:
abstract class Button {
void render();
}
class AndroidButton implements Button {
@override
void render() {
print('Απεικόνιση κουμπιού στυλ Android');
}
}
class IOSButton implements Button {
@override
void render() {
print('Απεικόνιση κουμπιού στυλ 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;
// Ανάλογα με την πλατφόρμα, δημιουργούμε το κατάλληλο διάλογο
bool isAndroid = true;
if (isAndroid) {
dialog = AndroidDialog();
} else {
dialog = IOSDialog();
}
dialog.render();
}
Σε αυτό το παράδειγμα, η μέθοδος εργοστασίου createButton επιτρέπει στις υποκλάσεις να δημιουργούν αντικείμενα διαφορετικών τύπων κουμπιών, και ο κώδικας πελάτη εργάζεται με αφαιρέσεις.