&
Fornecem mecanismos de criação de objetos que aumentam a flexibilidade e a reutilização de código.
Explicam como montar objetos e classes em estruturas maiores, enquanto ainda mantém as estruturas flexíveis e eficientes.
Cuidam da comunicação eficiente e da assinalação de responsabilidades entre objetos.
Este padrão permite a criação de famílias de objetos relacionados ou dependentes por meio de uma única interface e sem que a classe concreta seja especificada.
Imagine q estamos desenvolvendo um aplicativo que contenha botões e inputs que precisam ter estilos diferentes para cada sistema operacional.
A primeira coisa que o padrão Abstract Factory sugere é declarar explicitamente interfaces para cada produto distinto da família.
É um padrão de projeto estrutural que fornece uma interface simplificada para uma biblioteca, um framework, ou qualquer conjunto complexo de classes.
Imagine que estamos desenvolvendo uma loja virtual.
Para realizar o pedido basico, precisamos:
Fazer o pedido sem ultilizar o facade
Fazer o pedido ultilizando o facade
Fazer o pedido ultilizando o facade