Junior — Middle
Коддо фабрика ыкмасы паттернин ишке ашыруу мисалын келтире аласызбы?
sobes.tech AI
AIден жооп
Фабрика ыкмасы үлгүсү объекттерди түзүүгө мүмкүндүк берет, түзүлүүчү объекттин так классын көрсөтпөстөн. Flutterде бул ар башка логикасы бар виджеттерди түзүү үчүн ыңгайлуу.
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 подкласстарга ар түрдүү баскыч түрлөрүнүн объекттерин түзүүгө мүмкүндүк берет, ал эми кардар коду абстракциялар менен иштейт.