Buscar

Design Patterns - Prototype

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Design Patterns
Prototype
Prototype Design Pattern
 Intent
 Especificar os tipos de objetos para criar usando uma instância protótipo e
criar novos objetos copiando este protótipo.
 Cooptar uma instância de uma classe para o uso como um criador de todas as
ocorrências futuras.
Prototype Design Pattern
 Problem
 Aplicação “Hard Wire" da classe de objeto para criar em cada expressão um “new".
 Discussion
 Declare uma classe base abstrata que especifica um método puro virtual "clone", e mantém
um dicionário de todas as classes concretas derivadas "cloneable". Qualquer classe que
necessitar de uma capacidade de "construtor polimórfico": deriva-se da classe base abstrata,
registra seu exemplo prototípico, e implementa a (operação) clone.
 O cliente então, em vez de escrever o código que chama o operador "new" em um hard-wired
nome da classe, chama a operação de "clone" na classe base abstrata, fornecendo uma string
ou tipo de dados enumerado que designa o betão especial da classe derivada desejada.
Prototype Design Pattern
 Structure
 A Fábrica sabe como encontrar o protótipo correto, e cada Produto sabe como
gerar novas instâncias de si mesmo
Prototype Design Pattern
 Example
 O padrão Prototype especifica o tipo de objetos para criar usando uma
instância prototípica. Protótipos de novos produtos são muitas vezes
construídos antes da produção total, mas neste exemplo , o protótipo é
passivo e não participa do processo de copiar a si mesmo. A divisão mitótica
de uma célula - resultando em duas células idênticas - é um exemplo de um
protótipo, que desempenha um papel ativo na cópia e, portanto, em si,
demonstra o padrão de protótipo . Quando uma célula se divide , duas células
de resultado genotvpe idênticos. Em outras palavras , o próprio clones
celulares .
Prototype Design Pattern
 Check list
 Adicione um método clone () para a hierarquia de "produto" existente.
 Projetar um " registro " que mantém um cache de objetos protótipo . O
registro pode ser encapsulado em uma nova classe de fábrica , ou na classe
base da hierarquia "produto" .
 Projetar um método de fábrica que: pode (ou não ) aceitar argumentos ,
encontra o objeto de protótipo correto, chama clone () no objeto , e retorna
o resultado .
 O cliente substitui todas as referências ao novo operador com chamadas para
o método de fábrica .
Prototype Design Pattern
 Rules of Thumbs
 Às vezes, padrões de criação são concorrentes : há casos em que um ou outro
protótipo ou Abstract Factory pode ser usado corretamente. Em outros momentos,
eles são complementory : Abstract Factory pode armazenar um conjunto de
protótipos a partir do qual a clonar e retornar objetos de produtos. Abstract
Factory , Builder e Prototype pode usar Singleton em suas implementações.
 Classes Abstract Factory abstrata são frequentemente implementadas com Factory
Methods, mas eles podem ser implementados usando Prototype .
 Factory Method : criação por meio de herança. Protótipo : criação por meio de
delegação.
 Muitas vezes, os projetos começam usando Factory Method (menos complicado,
mais personalizável , subclasses proliferam ) e evoluir em direção a Abstract
Factory , Protótipo , ou Builder ( mais flexível, mais complexo) como o designer
descobre onde é necessária mais flexibilidade.
Prototype Design Pattern
 Prototype não requer subclasse , mas exige uma operação de " inicializar" .
Factory Method requer subclasse , mas não exige Initialize.
 Projetos que fazem uso pesado dos padrões Composite e Decorator
frequentemente podem se beneficiar de Prototype também.
 Prototype coopta uma instância de uma classe para o uso como um criador de
todas as ocorrências futuras .
 Protótipos são úteis quando a inicialização do objeto é caro, e você antecipa
algumas variações sobre os parâmetros de inicialização . Neste contexto, o
protótipo pode evitar a " criação a partir do zero " caro, e apoiar a clonagem
barato de um protótipo pré- inicializado.
 Prototype é único entre os outros padrões de criação na medida em que não exige
uma classe - apenas um objeto. Linguagens orientadas a objeto , como Auto e
Omega que acabar com aulas de confiar inteiramente em protótipos para a criação
de novos objetos.

Outros materiais