Junior — Middle
Poți oferi un exemplu de implementare a pattern-ului metodei fabricii în cod?
sobes.tech AI
Răspuns de la AI
Modelul de fabrică permite crearea de obiecte fără a specifica clasa concretă a obiectului creat. În Flutter, acest lucru este util pentru crearea de widget-uri cu logică diferită.
Exemplu de implementare în Dart:
abstract class Button {
void render();
}
class AndroidButton implements Button {
@override
void render() {
print('Redare buton stil Android');
}
}
class IOSButton implements Button {
@override
void render() {
print('Redare buton stil 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;
// În funcție de platformă, creăm dialogul necesar
bool isAndroid = true;
if (isAndroid) {
dialog = AndroidDialog();
} else {
dialog = IOSDialog();
}
dialog.render();
}
În acest exemplu, metoda de fabrică createButton permite subclasele să creeze obiecte de diferite tipuri de butoane, iar codul client lucrează cu abstracții.