SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Connect & Transform
DESIGN PATTERNS
Padrões de projeto para melhorar seu código OO
Thiago Gonzaga
ZUP IT
Twitter: @thiguetta
facebook: fb.com/thiguetta
Email: thiago.gonzaga@zup.com.br
• O que são Design Patterns
• Por que usar
• Tipos de padrões
• Criacionais
• Estruturais
• Comportamentais
• Padrões que serão abordados
• Considerações
• Leitura recomendada
Agenda
• Melhores práticas de codificação
• Padrões de código orientado a objeto
• Soluções para problemas recorrentes (Modelo)
• Reutilizável
O que são Design Patterns
• Flexibilidade
• Reusabilidade
• Vocabulário comum
• Manter o código limpo e legível
Por que usar?
• Criacionais
• Estruturais
• Comportamentais
Tipos de padrões
• Definir um processo de instanciação de objetos
• Encapsular conhecimento sobre os objetos
• Oculta como as instancias da classe são
criadas
• Flexibilidade: Quem, Como e Quando
Padrões Criacionais
• Composição das classes como estruturas
maiores
• Descreve maneira de compor classes de modo
a criar uma nova funcionalidade
• Flexibilidade de composição de objetos e a
habilidade de mudar a composição em tempo
de execução
Padrões Estruturais
• Diz respeito aos algoritmos
• Atribuição de responsabilidade entre as classes
• Padroniza comunicação e controle de fluxo
• Reduz acoplamento do código
Padrões Comportamentais
Criacional Estrutural Comportamental
Factory Adapter Chain of Responsibility
Builder Bridge Command
Prototype Composite Interpreter
Singleton Decorator Iterator
Facade Mediator
Flyweight Memento
Proxy Observer
State
Strategy
Template
Visitor
Criacional Estrutural Comportamental
Factory Adapter Chain of Responsibility
Builder Bridge Command
Prototype Composite Interpreter
Singleton Decorator Iterator
Facade Mediator
Flyweight Memento
Proxy Observer
State
Strategy
Template
Visitor
Factory
Builder
Facede
Chain of
Responsibility
Memento
State
Strategy
• Design Patterns é algo que se aperfeiçoa com a
experiência
• Mudança de mind-set de estruturado para OO
• Praticar clean code
• Crie uma conta no GitHub
• Contribua com projetos de software livre
Considerações finais
• Robert C. Martin. 2008. Clean Code: A
Handbook of Agile Software Craftsmanship (1
ed.). Prentice Hall PTR, Upper Saddle River, NJ,
USA.
• Erich Gamma, Richard Helm, Ralph Johnson,
and John Vlissides. 1995. Design Patterns:
Elements of Reusable Object-Oriented
Software. Addison-Wesley Longman Publishing
Co., Inc., Boston, MA, USA.
Para ler mais tarde
Obrigado
Connect & Transform
Thiago Gonzaga
ZUP IT
Twitter: @thiguetta
facebook: fb.com/thiguetta
Email: thiago.gonzaga@zup.com.br

Más contenido relacionado

Similar a Design patterns

Desenvolvimento de Projetos Interativos: Especificação e Implementação
Desenvolvimento de Projetos Interativos: Especificação e ImplementaçãoDesenvolvimento de Projetos Interativos: Especificação e Implementação
Desenvolvimento de Projetos Interativos: Especificação e ImplementaçãoEdyd B. Junges
 
Interação Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - DesignInteração Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - DesignWellington Oliveira
 
BlingTech - Padrões de Projeto
BlingTech - Padrões de ProjetoBlingTech - Padrões de Projeto
BlingTech - Padrões de ProjetoFernando Henrique
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwarejamersonlima
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
Clean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoClean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoPaulo Henrique da Silva
 
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAmyris Fernandez
 
Mini curso redes sociais - IMD instituto Metrópole Digital
Mini curso redes sociais -  IMD instituto Metrópole DigitalMini curso redes sociais -  IMD instituto Metrópole Digital
Mini curso redes sociais - IMD instituto Metrópole DigitalKamila Joyce
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introduçãoelliando dias
 
Padrões De Projeto e Anti Patterns
Padrões De Projeto e Anti PatternsPadrões De Projeto e Anti Patterns
Padrões De Projeto e Anti PatternsHerval Freire
 
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...sbcars
 
Introdução a Padrões de Projeto
Introdução a Padrões de ProjetoIntrodução a Padrões de Projeto
Introdução a Padrões de ProjetoEduardo Mendes
 
Como desenvolver metodologias de design
Como desenvolver metodologias de designComo desenvolver metodologias de design
Como desenvolver metodologias de designUTFPR
 

Similar a Design patterns (20)

Desenvolvimento de Projetos Interativos: Especificação e Implementação
Desenvolvimento de Projetos Interativos: Especificação e ImplementaçãoDesenvolvimento de Projetos Interativos: Especificação e Implementação
Desenvolvimento de Projetos Interativos: Especificação e Implementação
 
Interação Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - DesignInteração Humano Computador Capítulo 9 - Design
Interação Humano Computador Capítulo 9 - Design
 
BlingTech - Padrões de Projeto
BlingTech - Padrões de ProjetoBlingTech - Padrões de Projeto
BlingTech - Padrões de Projeto
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
00 apresentacao
00   apresentacao00   apresentacao
00 apresentacao
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Clean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoClean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimento
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
 
Mini curso redes sociais - IMD instituto Metrópole Digital
Mini curso redes sociais -  IMD instituto Metrópole DigitalMini curso redes sociais -  IMD instituto Metrópole Digital
Mini curso redes sociais - IMD instituto Metrópole Digital
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Aula1.pdf
Aula1.pdfAula1.pdf
Aula1.pdf
 
[CEFETMG][ESw] Aula 6 - Conceitos de projeto
[CEFETMG][ESw] Aula 6 - Conceitos de projeto[CEFETMG][ESw] Aula 6 - Conceitos de projeto
[CEFETMG][ESw] Aula 6 - Conceitos de projeto
 
Padrões De Projeto e Anti Patterns
Padrões De Projeto e Anti PatternsPadrões De Projeto e Anti Patterns
Padrões De Projeto e Anti Patterns
 
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
 
Introdução a Padrões de Projeto
Introdução a Padrões de ProjetoIntrodução a Padrões de Projeto
Introdução a Padrões de Projeto
 
Como desenvolver metodologias de design
Como desenvolver metodologias de designComo desenvolver metodologias de design
Como desenvolver metodologias de design
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 

Más de Thiago Gonzaga

Big Data: Seus problemas estão apenas começando
Big Data: Seus problemas estão apenas começandoBig Data: Seus problemas estão apenas começando
Big Data: Seus problemas estão apenas começandoThiago Gonzaga
 
Keynote Abertura 20 Dias de Java - Javanoroeste
Keynote Abertura 20 Dias de Java - JavanoroesteKeynote Abertura 20 Dias de Java - Javanoroeste
Keynote Abertura 20 Dias de Java - JavanoroesteThiago Gonzaga
 
Concurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes CorporativosConcurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes CorporativosThiago Gonzaga
 
Virtualização e cloud computing
Virtualização e cloud computingVirtualização e cloud computing
Virtualização e cloud computingThiago Gonzaga
 
Introdução a Tecnologia Java
Introdução a Tecnologia JavaIntrodução a Tecnologia Java
Introdução a Tecnologia JavaThiago Gonzaga
 

Más de Thiago Gonzaga (8)

Big Data: Seus problemas estão apenas começando
Big Data: Seus problemas estão apenas começandoBig Data: Seus problemas estão apenas começando
Big Data: Seus problemas estão apenas começando
 
Software Livre
Software LivreSoftware Livre
Software Livre
 
Keynote Abertura 20 Dias de Java - Javanoroeste
Keynote Abertura 20 Dias de Java - JavanoroesteKeynote Abertura 20 Dias de Java - Javanoroeste
Keynote Abertura 20 Dias de Java - Javanoroeste
 
Java 8 e futuro
Java 8 e futuroJava 8 e futuro
Java 8 e futuro
 
Concurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes CorporativosConcurrency 1.0: Concorrência em Ambientes Corporativos
Concurrency 1.0: Concorrência em Ambientes Corporativos
 
Virtualização e cloud computing
Virtualização e cloud computingVirtualização e cloud computing
Virtualização e cloud computing
 
Compweek
CompweekCompweek
Compweek
 
Introdução a Tecnologia Java
Introdução a Tecnologia JavaIntrodução a Tecnologia Java
Introdução a Tecnologia Java
 

Design patterns

  • 1. Connect & Transform DESIGN PATTERNS Padrões de projeto para melhorar seu código OO Thiago Gonzaga ZUP IT Twitter: @thiguetta facebook: fb.com/thiguetta Email: thiago.gonzaga@zup.com.br
  • 2. • O que são Design Patterns • Por que usar • Tipos de padrões • Criacionais • Estruturais • Comportamentais • Padrões que serão abordados • Considerações • Leitura recomendada Agenda
  • 3. • Melhores práticas de codificação • Padrões de código orientado a objeto • Soluções para problemas recorrentes (Modelo) • Reutilizável O que são Design Patterns
  • 4. • Flexibilidade • Reusabilidade • Vocabulário comum • Manter o código limpo e legível Por que usar?
  • 5. • Criacionais • Estruturais • Comportamentais Tipos de padrões
  • 6. • Definir um processo de instanciação de objetos • Encapsular conhecimento sobre os objetos • Oculta como as instancias da classe são criadas • Flexibilidade: Quem, Como e Quando Padrões Criacionais
  • 7. • Composição das classes como estruturas maiores • Descreve maneira de compor classes de modo a criar uma nova funcionalidade • Flexibilidade de composição de objetos e a habilidade de mudar a composição em tempo de execução Padrões Estruturais
  • 8. • Diz respeito aos algoritmos • Atribuição de responsabilidade entre as classes • Padroniza comunicação e controle de fluxo • Reduz acoplamento do código Padrões Comportamentais
  • 9. Criacional Estrutural Comportamental Factory Adapter Chain of Responsibility Builder Bridge Command Prototype Composite Interpreter Singleton Decorator Iterator Facade Mediator Flyweight Memento Proxy Observer State Strategy Template Visitor
  • 10. Criacional Estrutural Comportamental Factory Adapter Chain of Responsibility Builder Bridge Command Prototype Composite Interpreter Singleton Decorator Iterator Facade Mediator Flyweight Memento Proxy Observer State Strategy Template Visitor
  • 16. State
  • 18. • Design Patterns é algo que se aperfeiçoa com a experiência • Mudança de mind-set de estruturado para OO • Praticar clean code • Crie uma conta no GitHub • Contribua com projetos de software livre Considerações finais
  • 19. • Robert C. Martin. 2008. Clean Code: A Handbook of Agile Software Craftsmanship (1 ed.). Prentice Hall PTR, Upper Saddle River, NJ, USA. • Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA. Para ler mais tarde
  • 20. Obrigado Connect & Transform Thiago Gonzaga ZUP IT Twitter: @thiguetta facebook: fb.com/thiguetta Email: thiago.gonzaga@zup.com.br