O documento descreve o padrão de projeto Prototype, que permite a criação de objetos a partir de um modelo original através da cópia desse protótipo. Ele especifica os tipos de objetos a serem criados usando uma instância-protótipo e cria novos objetos pela cópia desse protótipo, com cada objeto sendo um factory especializado em construir objetos iguais a si mesmo.
1. Grupo GWTEDGrupo GWTED
Davidson S. Marques
Elias Rodrigues de Oliveira
Gabriela Borges Diniz Teixeira
Thiago César Eufrásio da Costa
Walter Freitas de Brito
2. É um padrão de projeto que permite a criação de objetos a
partir de um modelo original, ou seja, foi criado com o objetivo
de especificar os tipos de objetos a serem criados usando uma
instância-protótipo e criar novos objetos pela cópia desse
protótipo. Efetivamente, cada objeto é um factory especializado
em construir objetos iguais a si mesmo.
3. -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.
4. -Exige a implementação de uma operação de clonagem;
-Inconveniente, no caso do reaproveitamento de classes pré-
existentes;
-Complexa, se for considerada a possibilidade de existirem referências
circulares nos atributos de um objeto.
5. •Classes podem ser definidas em tempo de execução;
•Alternativa simples quando o padrão Abstract Factory se mostrar
complexo, principalmente na questão de hierarquia;
•Conjunto inicial independente das variações.
6. -Quando um sistema tiver que ser independente de como os seus
produtos são criados, compostos e representados;
-Quando as classes a instanciar forem especificadas em tempo de
execução, por exemplo, por carga dinâmica;
7. -Para evitar a construção de uma hierarquia de classes de
fábricas paralela à hierarquia de classes de produto;
-Quando as instâncias de uma classe puderem ter uma dentre
poucas combinações diferentes de estados. Pode ser mais
conveniente instalar um número correspondente de protótipos
e cloná-los, ao invés de instanciar a classe manualmente, cada
vez com um estado apropriado.
8. -Cada subclasse de Prototype deve implementar a operação
clone, o que pode ser difícil. Por exemplo, acrescentar clone é
difícil quando as classes consideradas já existem.
-A implementação de clone pode ser complicada quando uma
estrutura interna da classe inclui objetos que não suportam
operação de cópia ou têm referencias circulares.
12. Classe Ovelha – é o objeto que está sendo clonado. Ela implementa os
métodos da classe abstrata Animal.
13. Classe Animal – É uma classe
abstrata que implementa a
interface Cloneable do Java
que possui um método clone
responsável por retornar
clone de objetos quando
implementado corretamente.
15. Prototype assim como os outros Padrões de Projetos podem ser
causadores de confiabilidade, reusabilidade e manutenibilidade de código.
Também podem ser capazes de economizar tempo e custo.
Podemos perceber que as vantagens são maiores que as desvantagens.