Junior — Middle
Môžeš uviesť príklad implementácie vzoru továrenská metóda v kóde?
sobes.tech AI
Odpoveď od AI
Vzor továrne metódy umožňuje vytvárať objekty bez špecifikácie konkrétnej triedy vytváraného objektu. V Flutteri je to užitočné na vytváranie widgetov s rôznou logikou.
Príklad implementácie v Dart:
abstract class Button {
void render();
}
class AndroidButton implements Button {
@override
void render() {
print('Renderovanie tlačidla štýlu Android');
}
}
class IOSButton implements Button {
@override
void render() {
print('Renderovanie tlačidla štýlu 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;
// Podľa platformy vytvoríme potrebný dialóg
bool isAndroid = true;
if (isAndroid) {
dialog = AndroidDialog();
} else {
dialog = IOSDialog();
}
dialog.render();
}
V tomto príklade metóda továrne createButton umožňuje podtriedam vytvárať objekty rôznych typov tlačidiel, a klientsky kód pracuje s abstrakciami.