Creado por Carlos Lopes
hace alrededor de 9 años
|
||
Pregunta | Respuesta |
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 |
¿Quieres crear tus propias Fichas gratiscon GoConqr? Más información.