Padrões de criação (creational patterns ) abstraem a forma como objetos são criados, tornando o sistema independente de como os objetos são criados, compostos e representados. Um padrão de criação de classe usa a herança para variar a classe que é instanciada, enquanto que um padrão de criação de objeto delegará a instanciação para outro objeto. Há dois temas recorrentes nesses padrões. Primeiro, todos encapsulam conhecimento sobre quais classes concretas são usadas pelo sistema. Segundo, ocultam o modo como essas classes são criadas e montadas. Tudo que o sistema sabe no geral sobre os objetos é que suas classes são definidas por classes abstratas. Os padrões de criação são classificados em Abstract Factory , Builder , Factory Method , Prototype e Singleton . GAMMA, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley, 1994.(adaptado) O padrão Abstract Factory é usado quando
✂️ a) o sistema deve ser independente da maneira como seus produtos são criados, relacionados e representados. ✂️ b) o algoritmo de criação de um objeto deve ser independente das suas partes e da maneira como ele é montado. ✂️ c) houver uma única instância de uma classe e esta for acessada a partir de um ponto de acesso conhecido. ✂️ d) classes delegam responsabilidade a alguma das subclasses, e deseja-se localizar qual é a subclasse acessada. ✂️ e) as classes utilizadas para instanciação são especificadas em tempo de execução ou carregadas dinamicamente.