Junior — Middle
Ar galite pateikti pavyzdį, kaip įgyvendinti fabrikos metodo modelį kode?
sobes.tech AI
Atsakymas iš AI
Fabrikos metodas leidžia kurti objektus nesukeliant konkrečios sukuriamo objekto klasės. Flutter'e tai patogu kurti skirtingos logikos widget'us.
Dart pavyzdys:
abstract class Button {
void render();
}
class AndroidButton implements Button {
@override
void render() {
print('Android stiliaus mygtuko atvaizdavimas');
}
}
class IOSButton implements Button {
@override
void render() {
print('iOS stiliaus mygtuko atvaizdavimas');
}
}
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;
// Priklausomai nuo platformos, sukuriame reikiamą dialogą
bool isAndroid = true;
if (isAndroid) {
dialog = AndroidDialog();
} else {
dialog = IOSDialog();
}
dialog.render();
}
Šiame pavyzdyje fabrikos metodas createButton leidžia pogrupių kurti skirtingų tipų mygtukų objektus, o klientų kodas dirba su abstrakcijomis.