SlideShare uma empresa Scribd logo
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

Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
ThiagoFortes8
 
Java básico
Java básicoJava básico
Java básico
Laryssa Muniz
 
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
Felipe J. R. Vieira
 
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/
Rodrigo Vieira
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
Igor Takenami
 
v
vv
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
Leonardo Melo Santos
 
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
Fernando Camargo
 
Aula5
Aula5Aula5
Aula5
fkimura
 
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
Marconi Rodrigues
 
Iniciando no Codeigniter
Iniciando no CodeigniterIniciando no Codeigniter
Iniciando no Codeigniter
michel adriano medeiros
 
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
Fábio Antonelli
 
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
Regis Magalhães
 
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
Guilherme de Cleva Farto
 
Java 16
Java 16Java 16
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
Elaine Cecília Gatto
 

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

Padrão Observer (Java)
Padrão Observer (Java)Padrão Observer (Java)
Padrão Observer (Java)
Allan Denis
 
Design Patterns - Com Java
Design Patterns  - Com JavaDesign Patterns  - Com Java
Design Patterns - Com Java
Felipe Do Nascimento
 
Padrão Observador (Orientação à Objetos)
Padrão Observador (Orientação à Objetos)Padrão Observador (Orientação à Objetos)
Padrão Observador (Orientação à Objetos)
Teles Maciel
 
Design patterns
Design patternsDesign patterns
Design patterns
Vinícius Krolow
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
Eduardo Carvalho
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
Fabio Moura Pereira
 
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
 
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
Michael Castillo Granados
 
Observer - Padrões de projeto
Observer - Padrões de projetoObserver - Padrões de projeto
Observer - Padrões de projeto
Eduardo Mendes
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
Evandro Venancio
 
design patterns java
design patterns javadesign patterns java
design patterns java
Rogerio da Silva
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Java
alexmacedo
 
Padrões de Projeto - Design Patterns
Padrões de Projeto - Design PatternsPadrões de Projeto - Design Patterns
Padrões de Projeto - Design Patterns
Dávisson Húdson Chaves Bernadete
 

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
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
Maurício Linhares
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
Glaucio Scheibel
 
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
Glauco Vinicius Argentino de Oliveira
 
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
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
Thiago Antonius
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
Rodrigo Cândido da Silva
 
Apresentação versão 1.5
Apresentação   versão 1.5Apresentação   versão 1.5
Apresentação versão 1.5
oliveiraprog
 
Aula1
Aula1Aula1
Aula1
mentrixmax
 
Framework Entities na CBSoft
Framework Entities na CBSoftFramework Entities na CBSoft
Framework Entities na CBSoft
Marcius Brandão
 
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...
Lucas Furtado de Oliveira
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvc
Jhordam Siqueira
 
Reutilização
ReutilizaçãoReutilização
Reutilização
emjorge
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
sauloroos01
 
Arquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhrArquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhr
Thiago Boufleuhr
 
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
Cloves Moreira Junior
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
Wagner Zaparoli
 
Sld 4
Sld 4Sld 4
Sld 4
spawally
 
Naked Objects
Naked ObjectsNaked Objects
Naked Objects
elliando dias
 

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

Clean Code - Promob DevDay 2022
Clean Code - Promob DevDay 2022Clean Code - Promob DevDay 2022
Clean Code - Promob DevDay 2022
Andre Baltieri
 
31/08/2019 - Flutter Talks
31/08/2019 - Flutter Talks31/08/2019 - Flutter Talks
31/08/2019 - Flutter Talks
Andre Baltieri
 
Refatorando para Testes de Unidade
Refatorando para Testes de UnidadeRefatorando para Testes de Unidade
Refatorando para Testes de Unidade
Andre Baltieri
 
PWA: State of Art
PWA: State of ArtPWA: State of Art
PWA: State of Art
Andre Baltieri
 
PWAs no seu Desktop
PWAs no seu DesktopPWAs no seu Desktop
PWAs no seu Desktop
Andre Baltieri
 
Criando APIs com Node e TypeScript
Criando APIs com Node e TypeScriptCriando APIs com Node e TypeScript
Criando APIs com Node e TypeScript
Andre Baltieri
 
Otimizando seu cenário de APIs
Otimizando seu cenário de APIsOtimizando seu cenário de APIs
Otimizando seu cenário de APIs
Andre Baltieri
 
Turbine sua API no Microsoft Azure
Turbine sua API no Microsoft AzureTurbine sua API no Microsoft Azure
Turbine sua API no Microsoft Azure
Andre Baltieri
 
Progressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundoProgressive Web Apps: Um novo mundo
Progressive Web Apps: Um novo mundo
Andre Baltieri
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance Tips
Andre Baltieri
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
Andre Baltieri
 
Migrando para o Angular 2
Migrando para o Angular 2Migrando para o Angular 2
Migrando para o Angular 2
Andre Baltieri
 
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
Andre Baltieri
 
BaaS com Firebase 3
BaaS com Firebase 3BaaS com Firebase 3
BaaS com Firebase 3
Andre Baltieri
 
Otimizando eu JavaScript com TypeScript
Otimizando eu JavaScript com TypeScriptOtimizando eu JavaScript com TypeScript
Otimizando eu JavaScript com TypeScript
Andre Baltieri
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
Andre Baltieri
 
Introdução ao Native Script
Introdução ao Native ScriptIntrodução ao Native Script
Introdução ao Native Script
Andre Baltieri
 
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
Andre Baltieri
 
Trabalhando com WebHooks no ASP.NET
Trabalhando com WebHooks no ASP.NETTrabalhando com WebHooks no ASP.NET
Trabalhando com WebHooks no ASP.NET
Andre Baltieri
 
Microsoft e o mundo do Desenvolvimento
Microsoft e o mundo do DesenvolvimentoMicrosoft e o mundo do Desenvolvimento
Microsoft e o mundo do Desenvolvimento
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

Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
AmiltonAparecido1
 
Forças e leis de Newton 2024 - parte 1.pptx
Forças e leis de Newton 2024 - parte 1.pptxForças e leis de Newton 2024 - parte 1.pptx
Forças e leis de Newton 2024 - parte 1.pptx
Danielle Fernandes Amaro dos Santos
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
wagnermorais28
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
1000a
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
livrosjovert
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
DanielCastro80471
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
SILVIAREGINANAZARECA
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
WelberMerlinCardoso
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
TomasSousa7
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
MarcosPaulo777883
 
QUIZ - HISTÓRIA 9º ANO - PRIMEIRA REPÚBLICA_ERA VARGAS.pptx
QUIZ - HISTÓRIA  9º ANO - PRIMEIRA REPÚBLICA_ERA VARGAS.pptxQUIZ - HISTÓRIA  9º ANO - PRIMEIRA REPÚBLICA_ERA VARGAS.pptx
QUIZ - HISTÓRIA 9º ANO - PRIMEIRA REPÚBLICA_ERA VARGAS.pptx
AntonioVieira539017
 
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdfCADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
NatySousa3
 

Último (20)

Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
 
Forças e leis de Newton 2024 - parte 1.pptx
Forças e leis de Newton 2024 - parte 1.pptxForças e leis de Newton 2024 - parte 1.pptx
Forças e leis de Newton 2024 - parte 1.pptx
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
 
Potenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números RacionaisPotenciação e Radiciação de Números Racionais
Potenciação e Radiciação de Números Racionais
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
 
QUIZ - HISTÓRIA 9º ANO - PRIMEIRA REPÚBLICA_ERA VARGAS.pptx
QUIZ - HISTÓRIA  9º ANO - PRIMEIRA REPÚBLICA_ERA VARGAS.pptxQUIZ - HISTÓRIA  9º ANO - PRIMEIRA REPÚBLICA_ERA VARGAS.pptx
QUIZ - HISTÓRIA 9º ANO - PRIMEIRA REPÚBLICA_ERA VARGAS.pptx
 
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdfCADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
 

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