SlideShare uma empresa Scribd logo
1 de 25
Workshop
Os principais Design Patterns
Sobre
• Microsoft MVP – Visual Studio and Development Technologies
• Trabalha com desenvolvimento Web desde 2003
• Atuação em projetos nacionais e internacionais de grande porte
• Hoje realiza consultorias e treinamentos na área
Agenda
• Antes de Começar
• Introdução
• Cuidados e Quando Utilizar
• Tipos de Design Patterns
• Alguns Patterns
• Factory
• Abstract Factory
• Singleton
• Adapter
• Facade
• MVC
Introdução
 Padrões de escrita de código
 Independentes de linguagem
 Design Patterns foi um conceito iniciado em 1994
 Criado por um grupo de 4 pessoas, conhecido como Gang of Four
 Em 1994, Erich Gamma, Richard Helm, Ralph Johnson e John Vissides
publicaram um livro:
 Design Patterns – Elements of Reusable Object-Oriented Software
Quais são?
 Factory Pattern
 Abstract Factory
Pattern
 Singleton Pattern
 Builder Pattern
 Prototype Pattern
 Adapter Pattern
 Bridge Pattern
 Filter Pattern
 Composite Pattern
 Decorator Pattern
 Facade Pattern
 Flyweight Pattern
 Proxy Pattern
 Chain of
Responsibility
Pattern
 Command Pattern
 Interpreter Pattern
 Iterator Pattern
 Mediator Pattern
 Memento Pattern
 Observer Pattern
 State Pattern
 Null Object Pattern
 Strategy Pattern
 Template Pattern
 Visitor Pattern
 MVC Pattern
 Business Delegate
Pattern
 Composite Entity
Pattern
 Data Access Object
Pattern
 Front Controller
Pattern
 Intercepting Filter
Pattern
 Service Locator
Pattern
 Transfer Object
Pattern
Além dos DesignPatterns
 A importância de um código limpo
 Um código bem escrito já é documentado
 Identação, nomeação de variáveis, linguagem ubíqua, complexidade
de código, divisão de responsabilidades, separação de conceitos, etc
Cuidados
 Não utilize o que você não sabe
 Não é por que você sabe que tem que utilizer
 Não é uma competição “Quem usa mais DP”
Tipos de DesignPatterns
 Creational Patterns (Criacional)
 Fornecem uma maneira de criar objetos sem a necessidade do uso de uma
nova instância do mesmo (Baseado em abstração por exemplo).
 Fornecem maior flexibilidade na decisão de qual objeto será criado.
 Structural Patterns (Estrutural)
 Focam nas classes e composição de objetos.
 Utilizam o conceito de herança para compor interfaces e então definir objetos
obtendo assim novas funcionalidades.
 Behavioral Patterns (Comportamental)
 Focam na comunicação entre objetos.
Factory
 É um dos Patterns mais utilizados
 Fornece um meio de criar um objeto sem expor sua lógica de criação
 Durante o consumo deste objeto, ele será referenciado como uma
interface.
Factory
AbstractFactory
 Atua como um super-factory, que cria outras factories
 Também pode ser chamado de “Factory of Factories”
 Neste padrão, uma interface é responsável por cirar uma Factory de
um objeto relacionado, sem expor suas classes
AbstractFactory
Singleton
 Este padrão envolve uma classe na qual a responsabilidade é criar um
objeto e ter certeza que apenas um deste objeto será criado.
 Esta classe fornece uma maneira de acessar este objeto, na qual pode
ser chamada diretamente, sem a necessidade de uma nova instância.
Singleton
Adapter
 Este padrão funciona como uma ponte entre duas interfaces
incompatíveis.
 Ele é na verdade uma única classe cuja responsabilidade é unir
funcionalidades de interfaces independentes e imcompatíveis.
Adapter
FACADE
 Este padrão esconde a complexidade do sistema provisionando uma
interface ao cliente.
 Esta interface prove métodos simplificados ao cliente, tornando a vida
dele mais fácil.
FACADE
MVC
 Sigla para Model-View-Controller
 É um padrão de separação de responsabilidades
 Model – Representa seu domínio, o core, os objetos do seu Sistema
 View – Representa a tela, a interface com o usuário
 Controller – Faz a ligação entre o modelo e a visão. Recebe os dados
da tela, trabalha no model e retorna um resultado para tela.
MVC
Fonte
 Design Patterns in Java
 http://www.tutorialspoint.com/design_pattern/factory_pattern.htm
TREINAMENTO
Aplicando Design Patterns em Aplicações
Corporativas
http://bit.ly/abt-5508
OBRI
GADO
5507   os principais design patterns
5507   os principais design patterns

Mais conteúdo relacionado

Mais procurados

Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita Polimorfismo
Regis Magalhães
 

Mais procurados (17)

Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
 
Java básico
Java básicoJava básico
Java básico
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
v
vv
v
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em Java
 
Aula5
Aula5Aula5
Aula5
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
Iniciando no Codeigniter
Iniciando no CodeigniterIniciando no Codeigniter
Iniciando no Codeigniter
 
Java Day 2011 - Reflection: Maximizando a produtividade em Java
Java Day 2011 - Reflection: Maximizando a produtividade em JavaJava Day 2011 - Reflection: Maximizando a produtividade em Java
Java Day 2011 - Reflection: Maximizando a produtividade em Java
 
Aula java[1]
Aula java[1]Aula java[1]
Aula java[1]
 
Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita Polimorfismo
 
Introdução à Metaprogramação com Java Reflection API
Introdução à Metaprogramação com Java Reflection APIIntrodução à Metaprogramação com Java Reflection API
Introdução à Metaprogramação com Java Reflection API
 
Java 16
Java 16Java 16
Java 16
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 

Destaque

Introdução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de SoftwareIntrodução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de Software
Willian Carminato
 

Destaque (13)

Padrão Observer (Java)
Padrão Observer (Java)Padrão Observer (Java)
Padrão Observer (Java)
 
Design Patterns - Com Java
Design Patterns  - Com JavaDesign Patterns  - Com Java
Design Patterns - Com Java
 
Padrão Observador (Orientação à Objetos)
Padrão Observador (Orientação à Objetos)Padrão Observador (Orientação à Objetos)
Padrão Observador (Orientação à Objetos)
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
Introdução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de SoftwareIntrodução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de Software
 
Design patterns de uma vez por todas
Design patterns de uma vez por todasDesign patterns de uma vez por todas
Design patterns de uma vez por todas
 
Observer - Padrões de projeto
Observer - Padrões de projetoObserver - Padrões de projeto
Observer - Padrões de projeto
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
design patterns java
design patterns javadesign patterns java
design patterns java
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Java
 
Padrões de Projeto - Design Patterns
Padrões de Projeto - Design PatternsPadrões de Projeto - Design Patterns
Padrões de Projeto - Design Patterns
 

Semelhante a 5507 os principais design patterns

Apresentação Introdução Design Patterns
Apresentação Introdução Design PatternsApresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Lucas Simões Maistro
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
elliando dias
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
ejdn1
 
Apresentação versão 1.5
Apresentação   versão 1.5Apresentação   versão 1.5
Apresentação versão 1.5
oliveiraprog
 
Framework Entities na CBSoft
Framework Entities na CBSoftFramework Entities na CBSoft
Framework Entities na CBSoft
Marcius Brandão
 
Arquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhrArquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhr
Thiago Boufleuhr
 

Semelhante a 5507 os principais design patterns (20)

Apresentação Introdução Design Patterns
Apresentação Introdução Design PatternsApresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Padrões de design orientado a objetos
Padrões de design orientado a objetosPadrões de design orientado a objetos
Padrões de design orientado a objetos
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Apresentação versão 1.5
Apresentação   versão 1.5Apresentação   versão 1.5
Apresentação versão 1.5
 
Aula1
Aula1Aula1
Aula1
 
Framework Entities na CBSoft
Framework Entities na CBSoftFramework Entities na CBSoft
Framework Entities na CBSoft
 
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvc
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 
Arquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhrArquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhr
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Sld 4
Sld 4Sld 4
Sld 4
 
Naked Objects
Naked ObjectsNaked Objects
Naked Objects
 

Mais de Andre Baltieri

Mais de Andre Baltieri (20)

Clean Code - Promob DevDay 2022
Clean Code - Promob DevDay 2022Clean Code - Promob DevDay 2022
Clean Code - Promob DevDay 2022
 
31/08/2019 - Flutter Talks
31/08/2019 - Flutter Talks31/08/2019 - Flutter Talks
31/08/2019 - Flutter Talks
 
Refatorando para Testes de Unidade
Refatorando para Testes de UnidadeRefatorando para Testes de Unidade
Refatorando para Testes de Unidade
 
PWA: State of Art
PWA: State of ArtPWA: State of Art
PWA: State of Art
 
PWAs no seu Desktop
PWAs no seu DesktopPWAs no seu Desktop
PWAs no seu Desktop
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
 
Otimizando seu cenário de APIs
Otimizando seu cenário de APIsOtimizando seu cenário de APIs
Otimizando seu cenário de APIs
 
Turbine sua API no Microsoft Azure
Turbine sua API no Microsoft AzureTurbine sua API no Microsoft Azure
Turbine sua API no Microsoft Azure
 
Progressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundoProgressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundo
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance Tips
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Migrando para o Angular 2
Migrando para o Angular 2Migrando para o Angular 2
Migrando para o Angular 2
 
Progressive Web Apps e o futuro do desenvolvimento Web na Plataforma .NET
Progressive Web Apps e o futuro do desenvolvimento Web na Plataforma .NETProgressive Web Apps e o futuro do desenvolvimento Web na Plataforma .NET
Progressive Web Apps e o futuro do desenvolvimento Web na Plataforma .NET
 
BaaS com Firebase 3
BaaS com Firebase 3BaaS com Firebase 3
BaaS com Firebase 3
 
Otimizando eu JavaScript com TypeScript
Otimizando eu JavaScript com TypeScriptOtimizando eu JavaScript com TypeScript
Otimizando eu JavaScript com TypeScript
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 
Introdução ao Native Script
Introdução ao Native ScriptIntrodução ao Native Script
Introdução ao Native Script
 
Criando aplicações Híbridas com AngularJs, TypeScript e Material Design
Criando aplicações Híbridas com AngularJs, TypeScript e Material DesignCriando aplicações Híbridas com AngularJs, TypeScript e Material Design
Criando aplicações Híbridas com AngularJs, TypeScript e Material Design
 
Trabalhando com WebHooks no ASP.NET
Trabalhando com WebHooks no ASP.NETTrabalhando com WebHooks no ASP.NET
Trabalhando com WebHooks no ASP.NET
 
Microsoft e o mundo do Desenvolvimento
Microsoft e o mundo do DesenvolvimentoMicrosoft e o mundo do Desenvolvimento
Microsoft e o mundo do Desenvolvimento
 

Último

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 

Último (20)

Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
classe gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptxclasse gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 

5507 os principais design patterns

  • 2. Sobre • Microsoft MVP – Visual Studio and Development Technologies • Trabalha com desenvolvimento Web desde 2003 • Atuação em projetos nacionais e internacionais de grande porte • Hoje realiza consultorias e treinamentos na área
  • 3. Agenda • Antes de Começar • Introdução • Cuidados e Quando Utilizar • Tipos de Design Patterns • Alguns Patterns • Factory • Abstract Factory • Singleton • Adapter • Facade • MVC
  • 4. Introdução  Padrões de escrita de código  Independentes de linguagem  Design Patterns foi um conceito iniciado em 1994  Criado por um grupo de 4 pessoas, conhecido como Gang of Four  Em 1994, Erich Gamma, Richard Helm, Ralph Johnson e John Vissides publicaram um livro:  Design Patterns – Elements of Reusable Object-Oriented Software
  • 5. Quais são?  Factory Pattern  Abstract Factory Pattern  Singleton Pattern  Builder Pattern  Prototype Pattern  Adapter Pattern  Bridge Pattern  Filter Pattern  Composite Pattern  Decorator Pattern  Facade Pattern  Flyweight Pattern  Proxy Pattern  Chain of Responsibility Pattern  Command Pattern  Interpreter Pattern  Iterator Pattern  Mediator Pattern  Memento Pattern  Observer Pattern  State Pattern  Null Object Pattern  Strategy Pattern  Template Pattern  Visitor Pattern  MVC Pattern  Business Delegate Pattern  Composite Entity Pattern  Data Access Object Pattern  Front Controller Pattern  Intercepting Filter Pattern  Service Locator Pattern  Transfer Object Pattern
  • 6. Além dos DesignPatterns  A importância de um código limpo  Um código bem escrito já é documentado  Identação, nomeação de variáveis, linguagem ubíqua, complexidade de código, divisão de responsabilidades, separação de conceitos, etc
  • 7. Cuidados  Não utilize o que você não sabe  Não é por que você sabe que tem que utilizer  Não é uma competição “Quem usa mais DP”
  • 8. Tipos de DesignPatterns  Creational Patterns (Criacional)  Fornecem uma maneira de criar objetos sem a necessidade do uso de uma nova instância do mesmo (Baseado em abstração por exemplo).  Fornecem maior flexibilidade na decisão de qual objeto será criado.  Structural Patterns (Estrutural)  Focam nas classes e composição de objetos.  Utilizam o conceito de herança para compor interfaces e então definir objetos obtendo assim novas funcionalidades.  Behavioral Patterns (Comportamental)  Focam na comunicação entre objetos.
  • 9. Factory  É um dos Patterns mais utilizados  Fornece um meio de criar um objeto sem expor sua lógica de criação  Durante o consumo deste objeto, ele será referenciado como uma interface.
  • 11. AbstractFactory  Atua como um super-factory, que cria outras factories  Também pode ser chamado de “Factory of Factories”  Neste padrão, uma interface é responsável por cirar uma Factory de um objeto relacionado, sem expor suas classes
  • 13. Singleton  Este padrão envolve uma classe na qual a responsabilidade é criar um objeto e ter certeza que apenas um deste objeto será criado.  Esta classe fornece uma maneira de acessar este objeto, na qual pode ser chamada diretamente, sem a necessidade de uma nova instância.
  • 15. Adapter  Este padrão funciona como uma ponte entre duas interfaces incompatíveis.  Ele é na verdade uma única classe cuja responsabilidade é unir funcionalidades de interfaces independentes e imcompatíveis.
  • 17. FACADE  Este padrão esconde a complexidade do sistema provisionando uma interface ao cliente.  Esta interface prove métodos simplificados ao cliente, tornando a vida dele mais fácil.
  • 19. MVC  Sigla para Model-View-Controller  É um padrão de separação de responsabilidades  Model – Representa seu domínio, o core, os objetos do seu Sistema  View – Representa a tela, a interface com o usuário  Controller – Faz a ligação entre o modelo e a visão. Recebe os dados da tela, trabalha no model e retorna um resultado para tela.
  • 20. MVC
  • 21. Fonte  Design Patterns in Java  http://www.tutorialspoint.com/design_pattern/factory_pattern.htm
  • 22. TREINAMENTO Aplicando Design Patterns em Aplicações Corporativas http://bit.ly/abt-5508