DEV - Design Patterns

Description

Design Patterns
Carlos Lopes
Flashcards by Carlos Lopes, updated more than 1 year ago
Carlos Lopes
Created by Carlos Lopes over 8 years ago
8
0

Resource summary

Question Answer
PADRÕES CRIACIONAIS - Abstract Factory - Builder - Factory - Prototype - Singleton
Abstract Factory Provê uma interface para a criação de uma família de objetos relacionados ou dependentes sem especificar sua classe concreta.
AbstractFactory: Quando usar? Construtores são naturalmente limitados. Existem situações onde objetos complexos são necessários, uma fábrica é mais expressiva nesse sentido.
Builder Separa a construção de um objeto de sua representação, então, a mesma construção pode criar diferentes representações de um objeto.
Builder: obs Builder permite o cliente criar objetos complexos definindo apenas o tipo e o conteúdo, escondendo todos os detalhes de criação. Builder dá mais controle sobre o passo a passo do que a Factory.
Factory Define uma interface para a criação de um objeto mas deixa subclasses decidirem qual classe instanciar
Factory: Quando usar? Existem situações onde o cliente não deve conhecer qual classe será instanciada. Factory permite que o cliente use uma indireção para a criação de um objeto enquanto mantém o controle sobre qual classe será instanciada.
Prototype Um inicializador de instancias para serem copiadas ou clonadas.
Singleton Permite apenas uma instância de uma classe.
Singleton: Quando usar? Quando é necessário permitir visibilidade global ou um único ponto de acesso para uma instância de uma classe. Normalmente fábricas são acessadas a partir de objetos Singleton.
PADRÕES ESTRUTURAIS - Adapter - Bridge - Composite - Decorator - Façade - Flyweigth - Proxy
Adapter Fornece uma interface estável para componentes semelhantes com interfaces diferentes.
Adapter: OBS O Adapter adiciona um nível de Indireção com objetos que adaptam as interfaces externas para internas. Geralmente usado junto com a Factory
Bridge Separa a interface de um objeto de sua implementação
Composite Composição de objetos
Decorator Adiciona responsabilidades aos objetos dinamicamente. Fornece maneiras de se estender uma funcionalidade
Decorator: OBS No Decorator as responsabilidades são acopladas dinamicamente em oposição a herança, onde tudo é definido em tempo de compilação.
Façade Uma única classe que representa um subsistema inteiro ou um tratador de eventos por caso de uso
Flyweigth Facilita o compartilhamento de grandes quantidades de objetos pequenos
FlyWeigth: OBS A intenção do flyweigth é compartilhar um grande numero de objetos pequenos eficientemente. Os dados compartilhados via flyweigth são imutáveis, então, só pode ser utilizados com dados que não sofrerão alteração constante.
Proxy Um objeto que representa outro objeto
PADRÕES COMPORTAMENTAIS Chains of Resp, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
Chains of Resp. Permite passar uma requisição entre uma cadeia de objetos até que algum objeto possa atender a essa requisição
Chains of Responsibility: OBS O objetivo é manter os objetos com fraco acoplamento. Desse modo a classe cliente não precisa conhecer diretamente a classe que pode atender a requisição.
Command Encapsula uma requisição de um comando como um objeto
Interpreter Um jeito de incluir elementos da linguagem em um programa
Iterator Como acessar elementos sequenciais de uma coleção
Mediator Define uma comunicação simplificada entre classes
Memento Captura e restaura o estado interno de um objeto
Observer Define uma dependência do tipo one-to-many entre objetos. Então, quando um é alterado os outros são notificados.
Observer: OBS Observer associa e desassocia observadores interessados em um determinado comportamento. Nenhum elemento depende diretamente do Observer o que promove o baixo acoplamento.
State Altera o comportamento de um objeto quando seu estado é alterado
State: OBS O estado de um objeto é representado por uma classe. O cliente pode mudar o estado de um objeto alterando a classe que o representa. Cada classe representa um estado em particular.
Strategy Define uma família de algoritmos, encapsula cada um em classes distintas e os deixa trabalhar de maneira intercambiável independente do cliente que o utiliza.
Strategy: OBS O strategy encapsula alternativas de algoritmos (estratégias) para uma operação em particular. i.e: clientes que optam por pagamento em crédito, débito, paypal, todas são estratégias de pgto.
Template Method Define o esqueleto do algoritmo em operação, atribuindo alguns passos para subclasses. As subclasses redefinem o algoritmos, sem mudar sua estrutura
TemplateMethod: OBS TemplateMethod fornece flexibilidade ao cod. É frequentemente utilizado quando se cria bibliotecas que serão usados por terceiros. Strategy e Template são parecidos, a diferença é que strategy muda o algoritmo por completo.
Visitor Define uma nova operação para uma classe sem alterá-la
Show full summary Hide full summary

Similar

Rates of Reaction
Evie Papanicola
GCSE Maths Notes: Averages
Andrea Leyden
Sociology- Family and Households Flashcards
Heloise Tudor
Religious Language
michellelung2008
Edexcel Additional Science Chemistry Topics 1+2
hchen8nrd
GCSE Maths: Algebra & Number Quiz
Andrea Leyden
GRE Verbal Reasoning Vocabulary Flashcards 3
Sarah Egan
exothermic and endothermic reactions
janey.efen
What are they doing?
Tamara Urzhumova
2PR101 1.test - 6. část
Nikola Truong
General Pathoanatomy Final MCQs (401-519)- 3rd Year- PMU
Med Student