Back to questions
Andersen
Junior — Middle
82
Можешь привести пример реализации паттерна фабричного метода в коде?
Companies where asked
Answer from AI
sobes.tech AI
Паттерн фабричного метода позволяет создавать объекты, не указывая конкретный класс создаваемого объекта. В Flutter это удобно для создания виджетов с разной логикой.
Пример реализации на Dart:
abstract class Button {
void render();
}
class AndroidButton implements Button {
@override
void render() {
print('Render Android style button');
}
}
class IOSButton implements Button {
@override
void render() {
print('Render iOS style button');
}
}
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 позволяет подклассам создавать объекты кнопок разных типов, а клиентский код работает с абстракциями.