You are on page 1of 5

Padres de projetos

Criacionais: Abstract Factory, Builder, Factory Method e Singleton AbstractFactory: criao de objetos da mesma famlia ou relacionados atravs de uma mesma interface, sem que a classe concreta seja especificada. Builder: constri objetos complexos passo a passo. Separa a representao do objeto de sua criao. Tem a estrutura dividida em: director, builder, concrete builder, e product.

director constri um objeto utilizando a interface do builder; builder especifica uma interface para um construtor de partes do objeto-produto; concrete builder define uma implementao da interface builder, mantm a representao que cria e fornece interface para recuperao do produto; product o objeto complexo acabado de construir. Inclui classes que definem as partes constituintes

Factory Method: criao de famlias ou objetos relacionados, sem especificar suas classes concretas. Adia a instanciao para a subclasse.

Prototype: pode construir objetos iguais a si mesmos, clonando.

Utilizado em sistemas que tem independncia da forma com que seus componentes so criados, compostos e representados. Classes definidas em tempo de execuo, sistemas que usam o abstract factory Singleton: Uma instncia nica da classe.

Padres estruturais: Adapter, Bridge, Composite, Decorator, Faade, Flyweight e Proxy.

Adpter: conhecido como wrapper, faz a adaptao da interface de uma classe. Interfaces incompatveis podem interagir. Bridge: ao invs de se utilizar generalizao, para que uma interface possa variar independentemente de suas implementaes. Relacionamento entre interfaces que desaclopa a interface da implementao.

Composite: composio de objetos similares a ele, que esto na mesma hierarquia. Uso para listas recorrentes ou recursivas. Objetos compostos tratados como se fosse um nico objeto. Mtodos atmicos tambm podero ser aplicados ao conjunto.

Decorator: ou wrapper, agrega comportamentos diferentes ao objeto em tempo de execuo. Adicionar funcionalidades a um objeto especfico e no a toda classe. Mais flexvel que herana, pois em tempo de execuo e tambm adiciona a mesma funcionalidade mais de uma vez. Evita o excesso de funcionalidade na classe. Decorator e seu componente no so idnticos, fazendo com que a comparaes sejam mais complexas.

Faade: interface simplificada para uma API, por exemplo. Torna: biblioteca mais fcil de entender e usar, cdigo simples, reduz dependncias, aumentando a flexibilidade.

Flyweight: Quando objetos devem ser manipulados, mas no suportam mais dados adicionais. No existe ponteiros para os mtodos do dado. Sub-rotinas so chamadas para acessar a memria.

Proxy: Classe que funciona como interface para outra classe. Vrios objetos proxies criados para referenciar um objeto complexo, afim de no ter desperdcio de memria, incorporando o padro Proxy ao flyweight

Padres Comportamentais: Chain of Responsability, Chain of Responsability: encadeamento de objetos receptores para o processamento de uma srie de solicitaes diferentes. Command: emitir solicitaes nada sabendo sobre a operao ou sobre quem t recebendo a mesma. Suporta desfazer operaes. Substituio de orientao a objetos para callbacks. Registrar a funo em algum local para ser usada mais adiante. Especificar, enfileirar e executar solicitaes em tempos diferentes.
O objetivo do padro Command encapsular uma solicitao como um objeto, desta forma permitindo que clientes parametrizem diferentes solicitaes, enfileirem ou faam o registro (log) de solicitaes e suportem operaes que podem ser desfeitas.

Interpreter: utilizado para representar e resolver problemas recorrentes que possam ser expressos de forma de uma linguagem formal simples. Especifica como entender frases numa linguagem de programao.Padro elegante para interpretao de pequenas gramticas. Iterator: acesso a elementos de um agregado de objetos, sem exposio de suas estruturas internas. Mediator: colabora e gerencia a colaborao entre um grupo de objetos. Define um objeto que encapsula as interaes dentre desse grupo. Memento: guardar o estado de um objeto por um determinado tempo, para que seja possvel retorn-lo. Observer: utilizado na dependncia um-para-muitos. Quando o estado do UM modificado, todos seus dependentes devem ser notificados. Objetos interessados tambm podem saber das mudanas. State: permite que o objeto seu comportamento quando seu estado alterado. Parece que o objeto passa a ser de outra classe. Mudar em tempo de execuo o comportamento, quando em ocasies que o comportamento depende do estado.

Strategy: O objetivo representar uma operao a ser realizada sobre os elementos de uma
estrutura de objetos. O padro Strategypermite definir novas operaes sem alterar as classes dos elementos sobre os quais opera. Definir uma famlia de algoritmos e encapsular cada algoritmo como uma classe, permitindo assim que elas possam ter trocados entre si. Este padro permite que o algoritmo possa variar independentemente dos clientes que o utilizam. Template Method: Um Template Method auxilia na definio de um algoritmo com partes do mesmo definidos por Mtodo abstratos. As subclasses devem se responsabilizar por estas partes abstratas,

destealgoritmo, que sero implementadas, possivelmente de vrias formas, ou seja, cada subclasse ir implementar sua necessidade e oferecer um comportamento concreto construindo todo o algoritmo. Visitor Pattern: O Visitor permite que se crie um nova operao sem que se mude a classe dos elementos sobre as quais ela opera. uma maneira de separar um algoritmo da estrutura de um objeto. Um resultado prtico a habilidade de adicionar novas funcionalidades a estruturas de um objeto prexistente sem a necessidade de modific-las. A idia usar uma classe de elementos como uma estrutura, sendo que cada uma delas possui um mtodo cujo um dos argumentos um objeto do tipo visitor. Visitor uma interface que possui um mtodo visit() para cada classe de elementos. O mtodo accept() de uma classe de elementos invoca o mtodo visit() de sua respectiva classe. Classes visitor concretas distintas podem ento ser escritas para implementar operaes especiais. O padro Visitor uma soluo para separar o algoritmo da estrutura. Uma das vantagens desse padro a habilidade de adicionar novas operaes a uma estrutura j existente. Com ele, podemos ter a classe ObjetoSolido e o comportamento de queda em uma classe Gravidade, separada da estrutura do ObjetoSolido. Isso feito atravs de uma interface, onde o objeto que vai executar esse mtodo da classe do comportamento, passa uma referencia dela mesmo junto dos parmetros normais da classe.

You might also like