Upload
perry
View
36
Download
0
Embed Size (px)
DESCRIPTION
Padrões de Projeto. Padrões. 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 abordados. Singleton Prototype Factory Method Abstract Factory Adapter - PowerPoint PPT Presentation
Citation preview
Padrões de Projeto
PadrõesPadrõ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 FactoryPadrões de Projeto
Adapter
• Reuso quando uma interface diferente é esperada
Padrões de Projeto
Composite• Estruturas parte-todo (árvore)
Padrões de Projeto
DecoratorPadrões de Projeto
• Adicionar responsabilidade sem adicionar dependência
FacadePadrões de Projeto
• Isolar o cliente da complexidade de um subsistema
ProxyPadrõ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 Va 10 45b 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
StatePadrões de Projeto
• Alterar comportamento sem alterar classe
StrategyPadrõ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?