Junior — Middle
Tudsz példát adni a gyári módszer mintázat megvalósítására a kódban?
sobes.tech MI
Válasz az MI-től
A gyártmódszer lehetővé teszi objektumok létrehozását anélkül, hogy meg kellene határozni a létrehozandó objektum konkrét osztályát. Flutterben ez kényelmes különböző logikájú widgetek létrehozásához.
Dart példakód:
abstract class Button {
void render();
}
class AndroidButton implements Button {
@override
void render() {
print('Android stílusú gomb renderelése');
}
}
class IOSButton implements Button {
@override
void render() {
print('iOS stílusú gomb renderelése');
}
}
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;
// A platform függvényében létrehozzuk a szükséges dialógust
bool isAndroid = true;
if (isAndroid) {
dialog = AndroidDialog();
} else {
dialog = IOSDialog();
}
dialog.render();
}
Ebben a példában a gyármetódus createButton lehetővé teszi az alosztályok számára, hogy különböző típusú gombokat hozzanak létre, és a klienskód absztrakciókkal dolgozik.