Escolar Documentos
Profissional Documentos
Cultura Documentos
Segundo Gustavo Bellini Bigardi, o Prototype é um padrão que faz parte do grupo de
padrões Criacionais e que permite a criação de novos objetos a partir de um modelo original,
ou como o próprio nome indica, um protótipo, que é clonado.
Entre suas utilidades, encontramos:
✓ Evitar que as subclasses que criam objetos funcionem como o padrão Abstract Factory;
✓ Evitar criar um novo objeto utilizando a palavra new, o que diminui o custo de memória;
✓ Em vez de o cliente implementar um código que utiliza o operador new, este utiliza o
método Clone(), presente no protótipo e o método de uma fábrica (Factory
Method ou Abstract Factory) que fica encarregada de clonar o novo objeto.
A seguir serão apresentadas a estrutura com seus módulos do padrão de projeto prototype.
1.1 ESCOPO
1.2 FINALIDADE
1.3 INTENÇÃO
1.4 MOTIVAÇÃO
1.5 APLICABILIDADE
1.6 ESTRUTURA
Fonte: wordpress.com
Prototype — uma classe que declara uma interface para objetos capazes de clonar a si mesmo.
Prototype concreto — implementação de um prototype;
Cliente — cria um novo objeto através de um prototype que é capaz de clonar a si mesmo.
1.8 COLABORAÇÕES
O cliente cria um novo objeto solicitando que o protótipo seja clonado. O cliente não
precisa conhecer uma classe específica do objeto, pois ele trabalha com a interface do Prototype.
1.9 CONSEQUÊNCIAS
O padrão isola as classes concretas dos clientes, facilita a troca de famílias de produtos
(basta trocar uma linha do código pois a criação da fábrica concreta aparece em um único ponto
do programa), promove a consistência de produtos (não há o perigo de misturar objetos de
famílias diferentes), dificulta a criação de novos produtos ligeiramente diferentes (pois temos
que modificar a fábrica abstrata e todas as fábricas concretas) (Ricardo Argenton Ramos, 2010).
Abstract Factory: Pode ser combinado com o Prototype para criar famílias de objetos
relacionados.
Memento: Pode ser usado para capturar e restaurar o estado de um objeto para suportar
operações de clonagem.
Singleton: Às vezes, um Singleton é utilizado como protótipo.
1.11EXEMPLO DE APLICAÇÃO