Back to questions
Andersen
Junior — Middle
127
Можешь привести пример применения паттерна 'Абстрактная фабрика' в практике разработки?
Companies where asked
Answer from AI
sobes.tech AI
Паттерн "Абстрактная фабрика" в Flutter часто применяется для создания кроссплатформенных виджетов с разным стилем оформления под Android и iOS. Например, можно определить абстрактную фабрику, которая создает кнопки и диалоги, а конкретные фабрики будут возвращать виджеты Material для Android и Cupertino для iOS.
abstract class UIFactory {
Widget createButton(String text, VoidCallback onPressed);
Widget createDialog(String title, String content);
}
class MaterialFactory implements UIFactory {
@override
Widget createButton(String text, VoidCallback onPressed) {
return ElevatedButton(onPressed: onPressed, child: Text(text));
}
@override
Widget createDialog(String title, String content) {
return AlertDialog(title: Text(title), content: Text(content));
}
}
class CupertinoFactory implements UIFactory {
@override
Widget createButton(String text, VoidCallback onPressed) {
return CupertinoButton(child: Text(text), onPressed: onPressed);
}
@override
Widget createDialog(String title, String content) {
return CupertinoAlertDialog(title: Text(title), content: Text(content));
}
}
// Использование:
UIFactory factory = Platform.isIOS ? CupertinoFactory() : MaterialFactory();
Widget button = factory.createButton('Нажми меня', () { /* действие */ });
Такой подход позволяет централизованно управлять стилями и компонентами, упрощая поддержку и расширение приложения.