SlideShare uma empresa Scribd logo
Padrões de
                        Projeto

Uma viagem pelo mundo do
objetos, seus problemas
e possíveis soluções
                              Andre Fonseca
                       http://www.andrefonseca.net
Quem sou eu ?
AGENDA

• Historia

• Definição

• Porque     usar

• Cuidados     (erros e excessos)

• Mundo      modernos (25 anos após o lançamento)
Mas o que é um
  padrão de
   projeto ?
Incrível!!!
Um começo fora da
  informática...
Christopher Alexandre


             Arquiteto, austríaco, matemático,
             professor emérito da Universidade da
             Califórnia, Berkeley.
Design Patterns
Um banquinho, uma praça,
uma árvore e um violão . . .
Aprendendo com os
 erros acertos dos
       outros
“cada padrão descreve um
problema no nosso
ambiente e o cerne de sua
solução, de tal forma que
possa usar essa solução
mais de milhões de
vezes...”
Design Patterns
Mas como fica a história
    na informática ?
GoF !


Mas como fica a história
    na informática ?
brycej's CC license
GoF
Catálogo
Design Patterns
O Sr tem uma
solução para mapeamento
   objeto relacional ?
Posso sugerir
alguns : DAO é um
   muito usado
Design Patterns
Problema
Problema



Contexto
Problema

Solução

Contexto
Linguagem comum... Um facilitador
Pedindo o almoço ...
Mas.. quais foram os critérios
de escolha das soluções para
         o catálogo?
Momento post it
Programando para interface, não
      para implementação
Buscar a composição de objetos a
           herança.
Fechado para alteração, entretanto,
      aberto para extensão
Projetando para mudanças
Usar padrões sempre ?

  Quando devo usar ou
  não usar ?

     Como saber qual é o
melhor ou mais coerente ?
Buscando o equilíbrio para a força
Projeto
focar, não bom é focar
       no padrão
Pessoal Experiente em Programação e Design Patterns adverte

      Usar Padrões de Projeto em excesso pode aumentar a
complexidade do projeto sem necessidade e deixar o programador
extressadão. Escolha sempre a solução mais simples possa realizar a
                              tarefa
Design Patterns
Permaneça simples


  O ótimo é o maior inimigo do bom

Faça programas para humanos entender
Anti Patterns
Eles não são tal
    mal assim
O caso do singletown
anos
Padrões J2EE          DSLs            IOC


                Linguagens Dinâmicas


Banco de Dados de      Banco de Dados orientado
     Objetos                 a documento

                       etc ...
Perguntas ?

Mais conteúdo relacionado

PDF
Semiótica Aplicada ao Design (Aula 01)
PDF
eXtreme eXperiment
PDF
Semiotica aplicada ao Design de Interação
KEY
Plataforma java
KEY
Jasmine frontinrio
PDF
Fisl aumentando lucro-python
PPTX
Como fica a arquitetura de software em um projeto ágil? Big Up Front, Inc...
PDF
Codigo legado fisl
Semiótica Aplicada ao Design (Aula 01)
eXtreme eXperiment
Semiotica aplicada ao Design de Interação
Plataforma java
Jasmine frontinrio
Fisl aumentando lucro-python
Como fica a arquitetura de software em um projeto ágil? Big Up Front, Inc...
Codigo legado fisl

Semelhante a Design Patterns (20)

PPTX
Padrões de Projeto - Design Patterns e Anti-Patterns
PPTX
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...
PPT
Trabalho submarino projetos de navegação e interação
PPTX
Aprensentacao oo-trincheiras
PDF
User Experience Boot Camp
PDF
Metodologias Ágeis para o Desenvolvimento de Software
PDF
O ciclo da vida
PPT
Interação Humano Computador Plataforma Mobile - Wellington Pinto de Oliveira
ODP
Como desenvolver-software
PPTX
OmbrosDeGigantes-TDC2014
PDF
Design de Interação Criativo, Social, Emotivo e Complicado
PDF
O que é ser um bom programador?
PDF
PHPZEIRO: Adote um framework
PDF
Padrões de Projeto
PPTX
Processo de Desenvolvimento de Software - Prototipação
KEY
Simple singleton pattern
PDF
Soujavarj 12 habitos de arquitetos altamente eficazes
PDF
Agile br2011 lucabastos-prog10x-noiteagilcaelum
PDF
Pensamento projetual no desenvolvimento de software
PDF
Introdução ao Metadesign
Padrões de Projeto - Design Patterns e Anti-Patterns
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...
Trabalho submarino projetos de navegação e interação
Aprensentacao oo-trincheiras
User Experience Boot Camp
Metodologias Ágeis para o Desenvolvimento de Software
O ciclo da vida
Interação Humano Computador Plataforma Mobile - Wellington Pinto de Oliveira
Como desenvolver-software
OmbrosDeGigantes-TDC2014
Design de Interação Criativo, Social, Emotivo e Complicado
O que é ser um bom programador?
PHPZEIRO: Adote um framework
Padrões de Projeto
Processo de Desenvolvimento de Software - Prototipação
Simple singleton pattern
Soujavarj 12 habitos de arquitetos altamente eficazes
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Pensamento projetual no desenvolvimento de software
Introdução ao Metadesign
Anúncio

Último (11)

PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Utilizando code blockes por andre backes
PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
Eng. Software - pontos essenciais para o início
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Jira Software projetos completos com scrum
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Tipos de servidor em redes de computador.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Viasol Energia Solar -Soluções para geração e economia de energia
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Manejo integrado de pragas na cultura do algodão
Utilizando code blockes por andre backes
Conceitos básicos de Redes Neurais Artificiais
Eng. Software - pontos essenciais para o início
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Jira Software projetos completos com scrum
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Tipos de servidor em redes de computador.pptx
Anúncio

Design Patterns