Prototype
-
Upload
tceufrasio1 -
Category
Education
-
view
1.531 -
download
0
description
Transcript of Prototype
Grupo GWTEDGrupo GWTEDDavidson S. MarquesElias Rodrigues de OliveiraGabriela Borges Diniz TeixeiraThiago César Eufrásio da CostaWalter Freitas de Brito
É 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.
-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.
-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.
•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.
-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;
-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.
-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.
Diagrama de classe:
Classe Main – será responsável por fazer as solicitações de clones de ovelhas.
Classe PrototypeFactory – retorna o clone de objetos quando solicitado pela classe Main.
Classe Ovelha – é o objeto que está sendo clonado. Ela implementa os métodos da classe abstrata Animal.
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.
Saída:
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.
http://pt.wikipedia.org/wiki/Prototypehttp://www.guj.com.br/content/articles/patterns/prototype_pattern_guj.pdfhttp://www.devmedia.com.br/post-4597-Padroes-de-projeto-em--NET--Prototype.html