A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Projeto de Sistemas de Software

Apresentações semelhantes


Apresentação em tema: "Projeto de Sistemas de Software"— Transcrição da apresentação:

1 Projeto de Sistemas de Software
Design Patterns Prototype Projeto de Sistemas de Software Gustavo Soares Souza

2 Sumário Propósito Motivação Aplicabilidade Estrutura Participantes
Prototype Propósito Motivação Aplicabilidade Estrutura Participantes Colaboradores Consequência Exemplo © LES/PUC-Rio

3 Design Patterns Abstract Factory Builder Factory Method Prototype
Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor Padrões de Criação Padrões Estruturais Padrões de Comportamento © LES/PUC-Rio

4 Prototype Motivação Evitar o custo computacional na criação de objetos com a palavra chave new como a maioria dos padrões de criação sugerem Imagine um cientista trabalhando em um laboratório que deseja poder clonar animais, preservando todo o seu material genético Para cada tipo de animal o cientista já tem um modelo (protótipo) já pronto para clone Fazendo uma abstração para sistemas de softwares, o ideal seria que o cientista nao precisasse conhecer os protótipos existentes para cada um dos animais, ele apenas diz para a classe Animal, por exemplo, que ele deseja clonar uma ovelha © LES/PUC-Rio

5 Prototype Propósito Criar objetos específicos a partir da instância de um protótipo, permitindo criar novos objetos a partir da cópia (clone) deste protótipo Objetos são criados a partir de um modelo © LES/PUC-Rio

6 Prototype Aplicabilidade
 Altamente recomendado quando um sistema precisa ser independente da forma como seus componentes são criados, representados e compostos Quando as classes a serem instanciadas são especificadas em tempo de execucação Sistemas onde pode ser conveniente disponibilizar um conjunto pré-estabelecido de protótipos que dão origem aos objetos que compoe o sistema © LES/PUC-Rio

7 Prototype Estrutura © LES/PUC-Rio

8 Prototype Participantes Prototype
 Prototype interface ou classe abstrata que define o método para clonar a si próprio  ConcretePrototype implementa o método para clonar a si próprio Client cria um novo objeto solicitando a um protótipo uma cópia de si mesmo © LES/PUC-Rio

9 Prototype Colaboração
A interação entre os participantes deste padrão é bem simples. Um cliente requisita a um Protótipo um clone de si próprio © LES/PUC-Rio

10 Prototype Consequência
Adição e remoção de classes em tempos de execução Redução do número de subclasses, uma vez que se pode clonar um protótipo em vez de pedir a um método (Abstract Factory) para construir um novo objeto. O cliente tem que interagir com a interface (ou classe abstrata) Prototype, já que a classe ConcretePrototype estão isoladas do cliente Cada subclasse (ConcretePrototype) tem que implementar o método clone, caso contrário a clonagem não será possível. Isso se torna difícil para classe que já existem no sistema © LES/PUC-Rio

11 Prototype Exemplo © LES/PUC-Rio

12 Prototype Exemplo © LES/PUC-Rio

13 Fim!!


Carregar ppt "Projeto de Sistemas de Software"

Apresentações semelhantes


Anúncios Google