Sobes.tech
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.