220 likes | 324 Views
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
E N D
Padrões de Projeto Padrões
Padrões de Projeto Padrões de Padrões • Acoplamento • Coesão • Reuso de classes eobjetos • Interface xImplementação • Herança de classexHerança de interface • ComposiçãoxHerança • Delegação
Padrões de Projeto Padrõesabordados • Singleton • Prototype • Factory Method • Abstract Factory • Adapter • Composite • Decorator • Facade • Proxy • Command • Observer • State • Strategy • Visitor
Padrões de Projeto Singleton • Únicainstância de umaclasse • 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 ) xRaso (shallow) • Collections • Transients
Padrões de Projeto Factory Method • Criarobjetossemespecificar a classeconcreta • Polimórficosounão
Padrões de Projeto Abstract Factory • Criarfamilias de objetosrelacionados • Independênciadacamadaabaixo • Custo de complexidade
Padrões de Projeto Abstract Factory
Padrões de Projeto Adapter • Reusoquandouma interface diferenteéesperada
Padrões de Projeto Composite • Estruturas parte-todo (árvore)
Padrões de Projeto Decorator • Adicionarresponsabilidadesemadicionardependência
Padrões de Projeto Facade • Isolaroclientedacomplexidade de um subsistema
Padrões de Projeto Proxy • “Super” referência • Remoting • Lazy • Secure … • Dynamic Proxy • Interface implementadaem runtime • InvocationHandler
Padrões de Projeto Command • Execuçãoflexível • Agendamento • Enfileiramento • Persistência • Compensação • Composição
Padrões de Projeto Observer • Publish / Subscribe • Modelos Push / Pull • java.util.Observer • java.util.Observable Notificação Alteração Model a(10,45) b(12,24)
Padrões de Projeto State • Alterarcomportamentosemalterarclasse
Padrões de Projeto Strategy • Definiralgorítmosintercambiáveis
Padrões de Projeto Visitor • Isolaroperações do modelo • Evita “poluição” do modelo. • Permiteadicionar novas operaçõessemalteraromodelo • Alterações no modelo, entretanto, podem ser trabalhosas
Padrões de Projeto 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 http://c2.com/cgi/wiki?AntiPattern http://www.manning.com/tate/
Padrões de Projeto Dúvidas?