padrões de projeto. padrões padrões de projeto padrões de padrões acoplamento coesão reuso de...

Post on 22-Apr-2015

138 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Padrões de Projeto

Padrões

Padrões de Projeto

Padrões de Padrões

• Acoplamento• Coesão• Reuso de classes e objetos• Interface x Implementação• Herança de classe x Herança de

interface• Composição x Herança• Delegação

Padrões de Projeto

Padrões abordados

• Singleton• Prototype• Factory Method• Abstract Factory• Adapter• Composite• Decorator• Facade

• Proxy• Command• Observer• State• Strategy• Visitor

Padrões de Projeto

Singleton

• Única instância de uma classe

• Pattern ou Anti-pattern?– Sincronização– Classloading– Distribuição– Escopo– [Não] coleta de lixo – Testes– Reuso

Padrões de Projeto

Prototype

• Clonagem• Fundo (deep ) x Raso

(shallow)• Collections• Transients

Padrões de Projeto

Factory Method

• Criar objetos sem especificar a classe concreta

• Polimórficos ou não

Padrões de Projeto

Abstract Factory

• Criar familias de objetos relacionados• Independência da camada abaixo• Custo de complexidade

Padrões de Projeto

Abstract Factory

Padrões de Projeto

Adapter

• Reuso quando uma interface diferente é esperada

Padrões de Projeto

Composite

• Estruturas parte-todo (árvore)

Padrões de Projeto

Decorator

Padrões de Projeto

• Adicionar responsabilidade sem adicionar dependência

Facade

Padrões de Projeto

• Isolar o cliente da complexidade de um subsistema

Proxy

Padrões de Projeto

• “Super” referência– Remoting– Lazy– Secure …

• Dynamic Proxy– Interface implementada

em runtime– InvocationHandler

Command

• Execução flexível– Agendamento– Enfileiramento– Persistência– Compensação– Composição

Padrões de Projeto

Observer

T V

a 10 45

b 12 24

Padrões de Projeto

0204060

Modela(10,45)b(12,24)

Alteração

Notificação

• Publish / Subscribe• Modelos Push / Pull• java.util.Observer• java.util.Observabl

e

State

Padrões de Projeto

• Alterar comportamento sem alterar classe

Strategy

Padrões de Projeto

• Definir algorítmos intercambiáveis

Padrões de Projeto

Visitor

• Isolar operações do modelo– Evita “poluição” do

modelo.– Permite adicionar

novas operações sem alterar o modelo

– Alterações no modelo, entretanto, podem ser trabalhosas

Combos

• Singleton + [Abstract] Factory• Command + Composite + Decorator• DAO (Value Object + Abstract Factory +

Broker)

Padrões de Projeto

Anti-patterns

• Big Ball Of Mud• Gas Factory• Interface Bloat• God Object• Magic Pushbutton• Object Orgy• Accidental

Complexity

Padrões de Projeto

http://c2.com/cgi/wiki?AntiPatternhttp://www.manning.com/tate/

Padrões de Projeto

Dúvidas?

top related