Prototype

3.568 visualizações

Publicada em

Publicada em: Educação
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Prototype

  1. 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. 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. 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. 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. 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. 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. 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. 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.
  9. 9. Diagrama de classe:
  10. 10. Classe Main – será responsável por fazer as solicitações de clones de ovelhas.
  11. 11. Classe PrototypeFactory – retorna o clone de objetos quando solicitado pela classe Main.
  12. 12. Classe Ovelha – é o objeto que está sendo clonado. Ela implementa os métodos da classe abstrata Animal.
  13. 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.
  14. 14. Saída:
  15. 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.
  16. 16. http://pt.wikipedia.org/wiki/Prototype http://www.guj.com.br/content/articles/patterns/prototype_pattern_guj.pdf http://www.devmedia.com.br/post-4597-Padroes-de-projeto-em--NET--Prototype.html

×