Design patterns de uma vez por todas

51
Design Patterns de uma vez por todas

Transcript of Design patterns de uma vez por todas

Page 1: Design patterns de uma vez por todas

Design Patternsde uma vez por todas

Page 2: Design patterns de uma vez por todas

Agenda

● Quem?!● O que é design pattern● Gang of Four (GoF)● Tipos de padrões

○ template method○ strategy○ observer○ singleton○ iterator

Page 3: Design patterns de uma vez por todas

Quem?!

Page 4: Design patterns de uma vez por todas

Quem?!Michael [email protected]/dgmikedgmike.com.br

Page 5: Design patterns de uma vez por todas

Quem?!Michael [email protected]/dgmikedgmike.com.br

Page 6: Design patterns de uma vez por todas

Quem?!

Page 7: Design patterns de uma vez por todas

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)

Page 8: Design patterns de uma vez por todas

Gang of Four (GoF)

Page 9: Design patterns de uma vez por todas

Gang of Four (GoF)

Page 10: Design patterns de uma vez por todas

Gang of Four (GoF)

Page 11: Design patterns de uma vez por todas

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)

Page 12: Design patterns de uma vez por todas

Gang of Four (GoF)

Debate sugerido

Page 13: Design patterns de uma vez por todas

Gang of Four (GoF)

Debate sugeridoSepare as coisas que mudam das coisas que são sempre as mesmas

Page 14: Design patterns de uma vez por todas

Gang of Four (GoF)

Debate sugeridoPrograme para uma interface e não para uma implementação

Page 15: Design patterns de uma vez por todas

Gang of Four (GoF)

Debate sugeridoPrefira composição ao no lugar de herança

Page 16: Design patterns de uma vez por todas

Gang of Four (GoF)

Debate sugeridoDelegue, delegue, delegue

Page 17: Design patterns de uma vez por todas

● 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

Page 18: Design patterns de uma vez por todas

● 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

Page 19: Design patterns de uma vez por todas

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

Page 20: Design patterns de uma vez por todas

template method

Page 21: Design patterns de uma vez por todas

template method

Page 22: Design patterns de uma vez por todas

template method

Page 23: Design patterns de uma vez por todas

template method

Não permite executar classes sem os mesmos métodos

Page 24: Design patterns de uma vez por todas

template method

Page 25: Design patterns de uma vez por todas

template method

Não podemos instanciar uma classe abstrata

Page 26: Design patterns de uma vez por todas

template method

Não permite CRIAR uma classe sem esses métodos

Page 27: Design patterns de uma vez por todas

strategy

Apesar do template method resolver o problema de forma simples e direta às vezes queremos mudar grande parte do script

Page 28: Design patterns de uma vez por todas

strategy

Page 29: Design patterns de uma vez por todas

strategy

Page 30: Design patterns de uma vez por todas

strategy

Page 31: Design patterns de uma vez por todas

strategy

Page 32: Design patterns de uma vez por todas

observer

Integrar vários objetos a apenas um para que eles executem determinada ação a partir da ação executada pelo primeiro objeto

Page 33: Design patterns de uma vez por todas

observer

Page 34: Design patterns de uma vez por todas

observer

Page 35: Design patterns de uma vez por todas

observer

Page 36: Design patterns de uma vez por todas

singleton

Garantir que a aplicação inteira deva possuir apenas uma instancia do objeto, mantendo um ponto global de acesso ao objeto

Page 37: Design patterns de uma vez por todas

singleton

Page 38: Design patterns de uma vez por todas

singleton

Page 39: Design patterns de uma vez por todas

singleton

Page 40: Design patterns de uma vez por todas

singleton

Page 41: Design patterns de uma vez por todas

singleton

Page 42: Design patterns de uma vez por todas

iterator

Criar uma estrutura de objetos similares em forma de coleção a fim de poder acessar todos de uma só vez

Page 43: Design patterns de uma vez por todas

iterator

Page 44: Design patterns de uma vez por todas

iterator

Page 45: Design patterns de uma vez por todas

iterator

Page 46: Design patterns de uma vez por todas

iterator

Page 47: Design patterns de uma vez por todas

iterator

Page 48: Design patterns de uma vez por todas

iterator

Page 49: Design patterns de uma vez por todas
Page 50: Design patterns de uma vez por todas

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

Page 51: Design patterns de uma vez por todas

Dúvidas?