Junior — Middle
Podes dar um exemplo de implementação do padrão de método de fábrica no código?
sobes.tech IA
Resposta da IA
O padrão de método de fábrica permite criar objetos sem especificar a classe concreta do objeto a ser criado. No Flutter, isso é útil para criar widgets com lógica diferente.
Exemplo de implementação em Dart:
abstract class Button {
void render();
}
class AndroidButton implements Button {
@override
void render() {
print('Renderizar botão estilo Android');
}
}
class IOSButton implements Button {
@override
void render() {
print('Renderizar botão estilo 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;
// Dependendo da plataforma, criar o diálogo necessário
bool isAndroid = true;
if (isAndroid) {
dialog = AndroidDialog();
} else {
dialog = IOSDialog();
}
dialog.render();
}
Neste exemplo, o método de fábrica createButton permite às subclasses criar objetos de diferentes tipos de botões, e o código cliente trabalha com abstrações.