SlideShare uma empresa Scribd logo
DesignPatterns
IntroduçãoePráticas
DesignPatterns
IntroduçãoePráticas
ApresentaçãodosconceitosfundamentaisdeDesignPatternintroduzidospeloGOF
CatálogodoGangOfFour-DesignPatterns–ElementsofReusableObject-OrientedSoftware
Pedro Henrique Frozi
ÍNDICE
1. Introdução
2. Definição
3. Categorização
a. GOF
b. Metsker & Wesley
4. Common Patterns (by GOF)
5. VU Patterns (David Budgen)
6. Conclusões
ÍNDICE
1. Introdução
2. Definição
3. Categorização
a. GOF
b. Metsker & Wesley
4. Common Patterns (by GOF)
5. VU Patterns (David Budgen)
6. Conclusões
INTRODUÇÃO
Um padrão é uma maneira específica de fazer algo, ou um maneira
predefinida de alcançar determinado objetivo, capaz de resolver
problemas nos mais variados contextos.
CristopherAlexander - Arquiteto que documentou as melhores
práticas de padrões de projeto para a construção civil. A engenharia
de software foi fortemente influenciada pelo seu trabalho.
INTRODUÇÃO
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (2002). Design
Patterns – Elements of Reusable Object-Oriented Software.
Metsker, S. J., & Wesley, P. A. (2002). Design Patterns Java
Workbook. Design.
ÍNDICE
1. Introdução
2. Definição
3. Categorização
a. GOF
b. Metsker & Wesley
4. Common Patterns (by GOF)
5. VU Patterns (David Budgen)
6. Conclusões
DEFINIÇÃO
Um DesignPattern é um padrão definido para resolver determinado
problema, que utiliza classes e métodos de uma linguagem orientada
à objetos.
DEFINIÇÃO
Elementos Essenciais de um padrão*:
● Nome
● Problema
● Solução
● Consequências
DEFINIÇÃO
Elementos Essenciais de um padrão*:
● Nome
● Problema
● Solução
● Consequências
DEFINIÇÃO
Elementos Essenciais de um padrão*:
● Nome
● Problema
● Solução
● Consequências
DEFINIÇÃO
Elementos Essenciais de um padrão*:
● Nome
● Problema
● Solução "ripple-effect"
● Consequências
Ampatzoglou, A., Chatzigeorgiou, A., Charalampidou, S., & Avgeriou, P. (2015). The effect of GoF design patterns on
stability: A case study. IEEE Transactions on Software Engineering, 41(8), 781–802.
DEFINIÇÃO
Elementos Essenciais de um padrão*:
● Nome
● Problema
● Solução
● Consequências
ÍNDICE
1. Introdução
2. Definição
3. Categorização
a. GOF
b. Metsker & Wesley
4. Common Patterns (by GOF)
5. VU Patterns (David Budgen)
6. Conclusões
ÍNDICE
1. Introdução
2. Definição
3. Categorização
a. GOF
b. Metsker & Wesley
4. Common Patterns (by GOF)
5. VU Patterns (David Budgen)
6. Conclusões
CATEGORIZAÇÃO-GOF
Rocha, H. da. (n.d.). Padrões de Design com aplicações em java.
ÍNDICE
1. Introdução
2. Definição
3. Categorização
a. GOF
b. Metsker & Wesley
4. Common Patterns (by GOF)
5. VU Patterns (David Budgen)
6. Conclusões
CATEGORIZAÇÃO-Metsker&Wesley
Rocha, H. da. (n.d.). Padrões de Design com aplicações em java.
Rocha, H. da. (n.d.). Padrões de Design com aplicações em java.
ÍNDICE
1. Introdução
2. Definição
3. Categorização
a. GOF
b. Metsker & Wesley
4. Common Patterns (by GOF)
5. VU Patterns (David Budgen)
6. Conclusões
CommonPatterns(byGOF)
1. Abstract Factory
2. Adapter
3. Composite
4. Decorator
5. Factory Method
6. Observer
7. Strategy
8. Template Method
CommonPatterns(byGOF)
Adapter (Wrapper)
Converter a interface de uma classe em outra interface esperada pelo
cliente.
Permite comunicação entre classes que não poderiam trabalhar
juntas devido à incompatibilidade de suas interfaces.
CommonPatterns(byGOF)
Adapter (Wrapper)
CommonPatterns(byGOF)
Composite
Compõe objetos em estruturas de árvore para representar
hierarquias.
Composite permite que clientes tratem objetos individuais e
composições de objetos de maneira uniforme.
CommonPatterns(byGOF)
Composite
Uma das motivações deste padrão surgiu das estruturas hierárquicas
necessárias para o desenvolvimento de aplicações gráficas.
CommonPatterns(byGOF)
Composite
CommonPatterns(byGOF)
Decorator
Anexa resposabilidades adicionais a um objeto dinamicamente,
oferencendo uma alternativa flexível ao uso de herança para
estender uma funcionalidade.
CommonPatterns(byGOF)
Decorator
CommonPatterns(byGOF)
Decorator
CommonPatterns(byGOF)
Factory Method(VirtualConstructor)
Define uma interface para criar um objeto mas deixar que subclasses
decidam que classe instanciar. Factory Method permite que uma
classe delegue a responsabilidade de instanciamento às subclasses.
CommonPatterns(byGOF)
Factory Method(VirtualConstructor)
CommonPatterns(byGOF)
Strategy
Definir uma família de algoritmos, encapsular cada um, e fazê-los
intercambiáveis. Strategy permite que algoritmos mudem
independentemente entre clientes que os utilizam.
CommonPatterns(byGOF)
Strategy
CommonPatterns(byGOF)
TemplateMethod
Define o esqueleto de um algoritmo dentro de uma operação,
deixando alguns passos a serem preenchidos pelas subclasses.
Template Method permite que suas subclasses redefinam certos
passos de um algoritmo sem mudar a sua estrutura.
CommonPatterns(byGOF)
TemplateMethod
CommonPatterns(byGOF)
TemplateMethod
ÍNDICE
1. Introdução
2. Definição
3. Categorização
a. GOF
b. Metsker & Wesley
4. Common Patterns (by GOF)
5. VU Patterns (David Budgen)
6. Conclusões
VUPatterns(DavidBudgen)
Zhang, C., & Budgen, D. (2013). A survey of experienced user perceptions about
software design patterns. Information and Software Technology, 55(5), 822–835.
VUPatterns(DavidBudgen)
Desenvolvedores
Zhang, C., & Budgen, D. (2013). A survey of experienced user perceptions about
software design patterns. Information and Software Technology, 55(5), 822–835.
VUPatterns(DavidBudgen)
Pesquisadores
Zhang, C., & Budgen, D. (2013). A survey of experienced user perceptions about
software design patterns. Information and Software Technology, 55(5), 822–835.
VUPatterns(DavidBudgen)
1. Proxy
2. Facade
VUPatterns(DavidBudgen)
Proxy (Surrogate)
O objetivo deste padrão é prover um substituto ou ponto de acesso
através do qual um objeto possa controlar o acesso a outro.
VUPatterns(DavidBudgen)
Proxy (Surrogate)
O objetivo deste padrão é prover um substituto ou ponto de acesso
através do qual um objeto possa controlar o acesso a outro.
VUPatterns(DavidBudgen)
Proxy (Surrogate)
VUPatterns(DavidBudgen)
Facade
O objetivo deste padrão é fornecer uma interface unificada para um
determinado conjunto de interfaces de um subsistema.
Ele define uma interface em alto nível que visa simplificar o uso de
subsistemas.
VUPatterns(DavidBudgen)
Facade
VUPatterns(DavidBudgen)
Facade
+ Facilita o desacoplamento de camadas;
+ Aumenta a coesão dos objetos das camadas inferiores;
ÍNDICE
1. Introdução
2. Definição
3. Categorização
a. GOF
b. Metsker & Wesley
4. Common Patterns (by GOF)
5. VU Patterns (David Budgen)
6. Conclusões
DúvidasDúvidas
ApresentaçãodosconceitosfundamentaisdeDesignPatternintroduzidospeloGOF
CatálogodoGangOfFour-DesignPatterns–ElementsofReusableObject-OrientedSoftware
Pedro Henrique Frozi

Mais conteúdo relacionado

Semelhante a Design Patterns - Introdução e Práticas

Pattners Everywhere, Even in Javascript
Pattners Everywhere, Even in JavascriptPattners Everywhere, Even in Javascript
Pattners Everywhere, Even in Javascript
Gustavo Corrêa Alves
 
Coding Dojo Aplicado ao Ambiente Organizacional
Coding Dojo Aplicado ao Ambiente OrganizacionalCoding Dojo Aplicado ao Ambiente Organizacional
Coding Dojo Aplicado ao Ambiente Organizacional
Avelino Ferreira Gomes Filho
 
Padrões de Projeto (GoF)
Padrões de Projeto (GoF)Padrões de Projeto (GoF)
Padrões de Projeto (GoF)
Álvaro Farias Pinheiro
 
Web camps mef
Web camps   mefWeb camps   mef
O que devo procurar em um code review
O que devo procurar em um code review O que devo procurar em um code review
O que devo procurar em um code review
Rodrigo de Souza Castro
 
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Maurício Aniche
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
Bruno Maomeh
 
Questionário sobre padrões de projeto revisão da tentativa
Questionário sobre padrões de projeto  revisão da tentativaQuestionário sobre padrões de projeto  revisão da tentativa
Questionário sobre padrões de projeto revisão da tentativa
AluisioSantos4
 
Teste de software
Teste de softwareTeste de software
Teste de software
Nécio de Lima Veras
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por teste
Universidade Tiradentes
 
Java com Excelência
Java com ExcelênciaJava com Excelência
Java com Excelência
Brazoft Solutions
 
Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)
Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)
Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)
Alessandro Almeida
 
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquiteturaTDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
Eric Lemes
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
Rodrigo Branas
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Curso Scrum
Curso ScrumCurso Scrum
Curso Scrum
Paulo Furtado
 
GoF.ppt
GoF.pptGoF.ppt
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos
Fabio Kon
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
Globalcode
 
Gerenciamento De Projeto Para Slideshare
Gerenciamento De Projeto Para SlideshareGerenciamento De Projeto Para Slideshare
Gerenciamento De Projeto Para Slideshare
Leila Oliva
 

Semelhante a Design Patterns - Introdução e Práticas (20)

Pattners Everywhere, Even in Javascript
Pattners Everywhere, Even in JavascriptPattners Everywhere, Even in Javascript
Pattners Everywhere, Even in Javascript
 
Coding Dojo Aplicado ao Ambiente Organizacional
Coding Dojo Aplicado ao Ambiente OrganizacionalCoding Dojo Aplicado ao Ambiente Organizacional
Coding Dojo Aplicado ao Ambiente Organizacional
 
Padrões de Projeto (GoF)
Padrões de Projeto (GoF)Padrões de Projeto (GoF)
Padrões de Projeto (GoF)
 
Web camps mef
Web camps   mefWeb camps   mef
Web camps mef
 
O que devo procurar em um code review
O que devo procurar em um code review O que devo procurar em um code review
O que devo procurar em um code review
 
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 
Questionário sobre padrões de projeto revisão da tentativa
Questionário sobre padrões de projeto  revisão da tentativaQuestionário sobre padrões de projeto  revisão da tentativa
Questionário sobre padrões de projeto revisão da tentativa
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Desenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por testeDesenvolvimento dirigido por comportamento e por teste
Desenvolvimento dirigido por comportamento e por teste
 
Java com Excelência
Java com ExcelênciaJava com Excelência
Java com Excelência
 
Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)
Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)
Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)
 
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquiteturaTDC 2014 - A influência dos processos de desenvolvimento na arquitetura
TDC 2014 - A influência dos processos de desenvolvimento na arquitetura
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
Curso Scrum
Curso ScrumCurso Scrum
Curso Scrum
 
GoF.ppt
GoF.pptGoF.ppt
GoF.ppt
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
 
Gerenciamento De Projeto Para Slideshare
Gerenciamento De Projeto Para SlideshareGerenciamento De Projeto Para Slideshare
Gerenciamento De Projeto Para Slideshare
 

Design Patterns - Introdução e Práticas