Junior — Middle
Pode explicar o conceito de fábrica abstrata e o seu propósito nos padrões de projeto?
sobes.tech IA
Resposta da IA
A fábrica abstrata é um padrão de design criacional que fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.
O objetivo do padrão é garantir a criação de objetos que devem trabalhar juntos, ocultando os detalhes de sua implementação concreta. Isso é útil quando o sistema deve ser independente do modo como os produtos são criados, compostos e apresentados.
Exemplo: numa aplicação iOS, pode-se usar uma fábrica abstrata para criar componentes de UI que parecem diferentes no iOS e no macOS, mas têm a mesma interface.
protocol Button {
func render()
}
class iOSButton: Button {
func render() {
print("Renderizar botão estilo iOS")
}
}
class MacOSButton: Button {
func render() {
print("Renderizar botão estilo macOS")
}
}
protocol UIFactory {
func createButton() -> Button
}
class iOSFactory: UIFactory {
func createButton() -> Button {
return iOSButton()
}
}
class MacOSFactory: UIFactory {
func createButton() -> Button {
return MacOSButton()
}
}
// Uso
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // Renderizar botão estilo iOS