Junior — Middle
Podes dar um exemplo de aplicação do padrão 'Fábrica Abstrata' na prática de desenvolvimento?
sobes.tech IA
Resposta da IA
O padrão "Fábrica Abstrata" no Flutter é frequentemente utilizado para criar widgets multiplataforma com estilos diferentes para Android e iOS. Por exemplo, pode-se definir uma fábrica abstrata que cria botões e diálogos, e fábricas concretas retornarão widgets Material para Android e Cupertino para 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));
}
}
// Uso:
UIFactory factory = Platform.isIOS ? CupertinoFactory() : MaterialFactory();
Widget button = factory.createButton('Pressione-me', () { /* ação */ });
Essa abordagem permite gerenciar centralizadamente estilos e componentes, facilitando a manutenção e expansão do aplicativo.