Design patterns de uma vez por todas
-
Upload
michael-castillo-granados -
Category
Technology
-
view
843 -
download
0
Transcript of Design patterns de uma vez por todas
Design Patternsde uma vez por todas
Agenda
● Quem?!● O que é design pattern● Gang of Four (GoF)● Tipos de padrões
○ template method○ strategy○ observer○ singleton○ iterator
Quem?!
Quem?!Michael [email protected]/dgmikedgmike.com.br
Quem?!Michael [email protected]/dgmikedgmike.com.br
Quem?!
O que é design pattern?
(…) Design Pattern, descreve uma solução geral reutilizável para um problema recorrente no desenvolvimento de sistemas de software orientados a objetos.
— wikipedia (sic)
Gang of Four (GoF)
Gang of Four (GoF)
Gang of Four (GoF)
Gang of Four (GoF)O Gang of Four são os autores do livro "Design Patterns: Elements of Reusable Object- Oriented Software". Este importante livro descreve várias técnicas de desenvolvimento e armadilhas, além de fornecer vinte e três padrões de projeto de programação orientadas a objeto. Os quatro autores foram Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides.
— Richard Carr (blackwasp.co.uk)
Gang of Four (GoF)
Debate sugerido
Gang of Four (GoF)
Debate sugeridoSepare as coisas que mudam das coisas que são sempre as mesmas
Gang of Four (GoF)
Debate sugeridoPrograme para uma interface e não para uma implementação
Gang of Four (GoF)
Debate sugeridoPrefira composição ao no lugar de herança
Gang of Four (GoF)
Debate sugeridoDelegue, delegue, delegue
● Padrões de Criação○ factory○ builder○ singleton
● Padrões estruturais○ adapter○ bridge○ composite○ decorator○ proxy
● Padrões comportamentais○ command○ interpreter○ iterator○ observer○ strategy○ template method
Tipos de padrões
○ factory method○ prototype
○ facade○ flyweight
○ chain of responsibility
○ mediator○ memento○ state○ visitor
● Padrões de Criação○ factory○ builder○ singleton
● Padrões estruturais○ adapter○ bridge○ composite○ decorator○ proxy
● Padrões comportamentais○ command○ interpreter○ iterator○ observer○ strategy○ template method
Tipos de padrões
○ factory method○ prototype
○ facade○ flyweight
○ chain of responsibility
○ mediator○ memento○ state○ visitor
template method
O script precisa de uma alteração em uma determinada parte do processo para que seja usada de outra forma dependendo de sua apliação
template method
template method
template method
template method
Não permite executar classes sem os mesmos métodos
template method
template method
Não podemos instanciar uma classe abstrata
template method
Não permite CRIAR uma classe sem esses métodos
strategy
Apesar do template method resolver o problema de forma simples e direta às vezes queremos mudar grande parte do script
strategy
strategy
strategy
strategy
observer
Integrar vários objetos a apenas um para que eles executem determinada ação a partir da ação executada pelo primeiro objeto
observer
observer
observer
singleton
Garantir que a aplicação inteira deva possuir apenas uma instancia do objeto, mantendo um ponto global de acesso ao objeto
singleton
singleton
singleton
singleton
singleton
iterator
Criar uma estrutura de objetos similares em forma de coleção a fim de poder acessar todos de uma só vez
iterator
iterator
iterator
iterator
iterator
iterator
referencias
http://php.netDesign Patterns In Ruby — Russ Olsenhttp://blackwasp.co.uk/GofPatterns.aspxhttp://sourcemaking.com/design_patterns/http://pt.wikipedia.org/wiki/Padrão_de_projeto_de_softwarehttp://google.com
http://github.com/dgmike/php-design-patterns
Dúvidas?