Nessa aula, vamos aprender um pouco mais sobre os padrões de projeto criacionais.
Ao final da aula, entenderemos melhor o que são os padrões criacionais e quando utilizá-los.
Em algumas situações a informação necessária para criação de certos objetos no programa é externa aos objetos, e é obtida da combinação dos estado de vários outros objetos.
Isso pode acontecer por diversos motivos, sendo alguns dos mais comuns:
Para resolver esses problemas, recorremos aos padrões de projeto criacionais.
Esses padrões lidam com a criação de objetos de forma controlada, permitindo a criação de objetos complexos de maneira flexível, eficiente e organizada.
A ideia aqui é delegar a tarefa de criação de certos tipos de objetos a uma classe especial, que possui o conhecimento necessário para criar e manipular o estado dos objetos sob sua responsabilidade.
O nome e papel dessa classe especial vão depender do padrão utilizado.
Vejamos alguns exemplos:
Delega a criação de objetos a uma "fábrica", que produz instâncias que compartilham de uma mesma interface.
A fábrica encapsula o conhecimento para criação dos objetos e conhece o contexto necessário para criar os objetos corretos e em um estado apropriado.
Dessa forma, não é necessário saber o tipo exato do objeto que será criado, apenas que ele atenderá a necessidade do contexto dado à fabrica.
Restringe a instanciação de uma classe a um único objeto.
A classe não fornece um construtor público e mantém uma única instância, que pode ser solicitada.
Dessa forma, pode-se manter um controle de estado global no programa quando for necessário.
Mantém uma reserva (pool) de objetos instanciados que podem ser reaproveitados após utilizados.
Frequentemente implementado como um tipo particular de Singleton.
Dessa forma, podem ser economizados recursos computacionais envolvidos na criação e destruição dos objetos complexos.
A medida que temos mais classes a nossa disposição para realizar as mais diversas tarefas, torna-se mais produtivo realizar a composição de classes em estruturas mais complexas. Assim o uso de padrões de criação torna-se relevante e muitas vezes indispensável.
Outros padrões desse tipo incluem:
Perguntas:
Até a próxima aula!