Creational Patterns
- Eles abstraem o processo de instanciação.
- A principal preocupação é atribuir a responsabilidade pela criação do objeto.
- “Onde devo usar a keyword new?”
- Normalmente, eles podem melhorar o acoplamento ao separar a lógica de criação de objetos do código do cliente que usa esses objetos.
Os padrões criacionais são projetados principalmente para lidar com as complexidades associadas à criação de objetos. O objetivo central desses padrões é abstrair e simplificar o processo de instanciação de objetos. Eles buscam resolver vários problemas relacionados à criação de objetos, tais como:
-
Controle sobre o Processo de Criação: Padrões criacionais fornecem maior controle sobre como os objetos são criados. Eles permitem flexibilidade e reutilização no processo de criação, o que é difícil de alcançar com a simples instanciação de objetos usando construtores.
-
Separação entre a Criação do Objeto e a Implementação da Classe: Isso é essencial para alcançar o princípio de design de baixo acoplamento. Os padrões criacionais ajudam a separar a construção de um objeto de sua representação, o que significa que o mesmo processo de construção pode criar diferentes representações.
-
Encapsulamento do Código de Criação: Em vez de espalhar o código de criação por toda a aplicação, os padrões criacionais encapsulam este código em uma localização central, facilitando a manutenção e a escalabilidade do código.
-
Flexibilidade e Extensibilidade: Eles proporcionam uma maneira flexível de criar objetos que podem ser facilmente adaptados ou estendidos com novos tipos de objetos.
-
Gerenciamento de Complexidades: Alguns objetos podem ser complexos para criar, envolvendo etapas múltiplas ou configurações intricadas. Padrões criacionais como o Builder podem simplificar esses processos.
-
Controle sobre a Criação de Objetos Singleton: Em situações onde deve existir apenas uma instância de uma classe em todo o programa, o padrão Singleton é utilizado para restringir a criação de múltiplas instâncias.
Em resumo, os padrões criacionais são fundamentais para lidar com os desafios de como os objetos são criados, configurados, e integrados em sistemas de software maiores, mantendo ao mesmo tempo a flexibilidade e a eficiência.