O que é Design Patterns?

Java

09/04/2009

Essa é fácil. Explicação em português, vamos lá. O que é Design Patterns? :!: :!: :!:
Vitor Pamplona

Vitor Pamplona

Curtidas 0

Respostas

Vitor Pamplona

Vitor Pamplona

09/04/2009

vfpamp, Dá uma olhada nesse link: [url]http://www.oodesign.com.br/forum/index.php?showtopic=308[/url] Tem um arquivo pdf explicando sobre isso...
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

Estamos no fórum de desafios, quero ver quem responde a minha pergunta sem consultar nada :) :!: :!: :!:
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

[quote="vfpamp"]Estamos no fórum de desafios, quero ver quem responde a minha pergunta sem consultar nada :) :!: :!: :!:
Foi mau... nem reparei nisso :oops:
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

[quote="vfpamp"]Essa é fácil. Explicação em português, vamos lá. O que é Design Patterns? :!: :!: :!:
Eu diria que é uma documentação de uma experiência que visa prevenir um erro do inexperiente. :arrow:
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

[quote="aspirante"]Eu diria que é uma documentação de uma experiência que visa prevenir um erro do inexperiente. :arrow:
:!: Assino, dizendo também, que pode ser conceituado como um "modo-garantido" para se desenvolver alguma solução sem cometer alguns erros (que provavelmente foram cometidos por quem desenvolveu o pattern) :lol: :arrow:
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

[quote="lucastex"][quote="aspirante"]Eu diria que é uma documentação de uma experiência que visa prevenir um erro do inexperiente. :arrow:
:!: Assino, dizendo também, que pode ser conceituado como um "modo-garantido" para se desenvolver alguma solução sem cometer alguns erros (que provavelmente foram cometidos por quem desenvolveu o pattern) :lol: :arrow:
E o mais legal disso tudo, é que tem gente que fica só desenvolvendo módulos de software visando os erros mais comuns no desenvolvimento e sobre estes erros, eles escrevem os patterns, impressionante! []'s
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

[quote="lucastex"][quote="aspirante"]Eu diria que é uma documentação de uma experiência que visa prevenir um erro do inexperiente. :arrow:
:!: Assino, dizendo também, que pode ser conceituado como um "modo-garantido" para se desenvolver alguma solução sem cometer alguns erros (que provavelmente foram cometidos por quem desenvolveu o pattern) :lol: :arrow:
Que tal um pouco mais de conteúdo para a galera iniciante poder entender??? :) :!: :!: :!: :!:
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

[quote="vfpamp"]Essa é fácil. Explicação em português, vamos lá. O que é Design Patterns? :!: :!: :!:
Bom, usando poucas palavras.. No meu ponto de vista, Design Patterns e uma forma de resolver uma determinada tarefa, sem utilizar gambiarras, e usar metodos que outras pessoas criaram para resolver um determinado problema. Tornando mais facil a solução. Um exemplo de pattern que usei, foi o "Singleton". valeu.. :!: :!:
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

O design pattern nasceu nos anos setenta e foi popularizado com o lançamento do livro : [url=http://www.forum2.org/tal/books/design.html]Elements of Reusable Object-Oriented Software [/url], de Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, também conhecido com Gangue dos Quatro, ou GoF. Depois disso vários outros livros já foram publicados descrevendo padrões de desenvolvimento de um software. Fonte: http://blogs.javafree.com.br/comments/aspirante?anchor=mvc_ou_model_model_view
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

[quote="aspirante"]O design pattern nasceu nos anos setenta e foi popularizado com o lançamento do livro : [url=http://www.forum2.org/tal/books/design.html]Elements of Reusable Object-Oriented Software [/url], de Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, também conhecido com Gangue dos Quatro, ou GoF. Depois disso vários outros livros já foram publicados descrevendo padrões de desenvolvimento de um software. Fonte: http://blogs.javafree.com.br/comments/aspirante?anchor=mvc_ou_model_model_view
Isso aí! mas reparem o detalhe do CTRL+C e CTRL+V : [quote="aspirante"]"...de Erich Gamma, Richard Helm, Ralph Johnson [color=red:8b4098a28d][u][i][b]and[/b][/i][/u][/color:8b4098a28d] John Vlissides..."
Heheheheheh... brincadeirinha... só nao podia deixar passar!! :hauhau:
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

Bem, em minhas palestras a clientes sobre a Tecnologia Java, costumo dizer, já que eles são leigos em desenvolvimento e não seria ético usar termos técnicos, como os já citados aqui neste tópico, que "Design Patterns" são "Padrões mundiais de qualidade para todo aquele que for desenvolver algo em Java, ou seja, não é possível desenvolver um sistema em Java sem seguir esses padrões." Dessa forma fica mais fácil eles (os clientes) entenderem e avaliarem de forma positiva a decisão de uma software house partir para Java ao atendê-los. 8)
GOSTEI 0
Bruno Borges

Bruno Borges

09/04/2009

Design Pattern nao eh : - padrao de qualidade - modo-garantido - melhor forma de fazer algo Design Pattern EH: - xunxo pra vc poder resolver problemas que a linguagem por sí nao consegue Pensem bem: - Nao eixste uma sintaxe q diga q uma classe soh pode ser instanciada uma unica vez, entao, qual a solucao? Design Pattern Singleton. - Nao existe uma api no core da linguagem para Factory de objetos. Qual a solucao? Design Pattern Factory Method - E por ae vai... :) A partir do momento que a linguagem oferecer tais features, deixa de ser Design Pattern e passa a ser API ou Especificacao. Ou seja, implementaram de forma correta, o xunxo... :) :!:
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

Só errou o "em Java". Design Patterns são especificados para qualquer linguagem, mas estão sendo mais utilizados com o Java e a programação "Direita" Para fechar... O que é Design Patterns - É uma documentação de uma experiência que visa prevenir um erro do inexperiente. - Um "modo-garantido" para se desenvolver alguma solução sem cometer alguns erros (que provavelmente foram cometidos por quem especificou o pattern) - É uma especificação para resolver uma determinada tarefa, usar métodos que outras pessoas criaram para resolver um determinado problema. Tornando mais fácil a solução. - É uma biblioteca de experiências. Experiências para resolver problemas que atormentam a todos. Geralmente não fazem parte da lógica do sistema, mas sim da técnica. - Ajudam a tornar um sistema padrão, visando o fácil entendimento para qualquer outra pessoa que conhece os Design Patterns O design pattern nasceu nos anos setenta e foi popularizado com o lançamento do livro : Elements of Reusable Object-Oriented Software , de Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, também conhecido com Gangue dos Quatro, ou GoF. Depois disso vários outros livros já foram publicados descrevendo padrões de desenvolvimento de um software.
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

[quote="lucastex"][quote="aspirante"]O design pattern nasceu nos anos setenta e foi popularizado com o lançamento do livro : [url=http://www.forum2.org/tal/books/design.html]Elements of Reusable Object-Oriented Software [/url], de Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, também conhecido com Gangue dos Quatro, ou GoF. Depois disso vários outros livros já foram publicados descrevendo padrões de desenvolvimento de um software. Fonte: http://blogs.javafree.com.br/comments/aspirante?anchor=mvc_ou_model_model_view
Isso aí! mas reparem o detalhe do CTRL+C e CTRL+V : [quote="aspirante"]"...de Erich Gamma, Richard Helm, Ralph Johnson [color=red:fe84b2dc10][u][i][b]and[/b][/i][/u][/color:fe84b2dc10] John Vlissides..."
Heheheheheh... brincadeirinha... só nao podia deixar passar!! :hauhau: ahhaah Não sou louco de decorar o nome destes caras, apenas copiei o nome das figuras do site http://www.forum2.org/tal/books/design.html []'s
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

[quote="miojo"]Design Pattern nao eh : - padrao de qualidade - modo-garantido - melhor forma de fazer algo Design Pattern EH: - xunxo pra vc poder resolver problemas que a linguagem por sí nao consegue Pensem bem: - Nao eixste uma sintaxe q diga q uma classe soh pode ser instanciada uma unica vez, entao, qual a solucao? Design Pattern Singleton. - Nao existe uma api no core da linguagem para Factory de objetos. Qual a solucao? Design Pattern Factory Method - E por ae vai... :) A partir do momento que a linguagem oferecer tais features, deixa de ser Design Pattern e passa a ser API ou Especificacao. Ou seja, implementaram de forma correta, o xunxo... :) :!:
Putz miojo eu já digo o inverso. Mudar a linguagem para implementar uma sintaxe de "Singleton" é xunxo (gambiarra).... A OO por si só não prevê isso, porque a linguagem deveria implementar??? :!: :!: :!:
GOSTEI 0
Clovis Junior

Clovis Junior

09/04/2009

E não é porque algo está na API que deixa de ser um pattern. Iterator está presente em collections como uma interface mas não deixa de ser um design pattern.
GOSTEI 0
Bruno Borges

Bruno Borges

09/04/2009

ueh... Enums nao tah especificado na teoria OO, mas tah implementado no Java 1.5... pq q Singleton nao pode ser implementado? :P Iterator eh um pattern? Collections Framework implementa varios patterns... justamente pq senao, teriamos q ficar implementando toda vez q quisessemos mexer com colecoes... soh q ninguem xama "Collections Pattern" e sim "Collections Framework"... bah, vc usou um pessimo exemplo pra contra argumentar... design pattern serve pra vc fugir de, ou apenas contornar problemas q a linguagem por si só nao consegue resolver... como o Collections Framework jah estah implementado na linguagem, entao temos uma API/Framework, e nenhum louco por ae fica comentando sobre Collections Pattern... nao em Java... agora, em Pascal vc vai ver varios "patterns" de collection... simplificando: estruturas de dados... :P Collections Framework pra mim nao eh pattern... eh estrutura de dado... E o Iterator eh uma forma de fugir de problemas q as estruturas basicas nao conseguem resolver por si só...
GOSTEI 0
Clovis Junior

Clovis Junior

09/04/2009

Quais patterns Collection Framework implementa? Eu sei que ela implementa várias estruturas de dados mas patterns eu só conheço o Iterator.
GOSTEI 0
Ricardo Lecheta

Ricardo Lecheta

09/04/2009

[quote="vfpamp"]Essa é fácil. Explicação em português, vamos lá. O que é Design Patterns?
1 - uma maneira de aprender com os erros dos outros e evitar que o mesmo aconteça com vc. :D 2 - padronização
GOSTEI 0
Luiz Bastos

Luiz Bastos

09/04/2009

Olá Não podemos esquecer que tudo começou com Alexander: "Cada pattern descreve um problema que ocorre repetidas vezes no nosso ambiente e então descreve o básico da solução deste problema da tal modo que se possa usar esta solução milhões de vezes sem precisar trilhar o mesmo caminho até a solução de novo" Ou "Cada pattern expressa uma relação entre um contexto, um problema e uma solução" As duas definições acima são de Cristopher Alexander no livro que deu origem ao conceito de patterns e que foi escrito em 1970 para engenharia civil e arquitetura. (Christopher Alexander, Sara Ishikawa, Murray Silverstein, Max Jacobson, Ingrid Fiksdahl-King, and Shlomo Angel. A Pattern Language. Oxford University Press, New York, 1977.) Como está no livro da gangue dos quatro (Gof), apesar de Alexander ter escrito sobre patterns em construções, o que ele diz é verdade sobre object-oriented design patterns. As soluções do livro de Gamma, Helm, Johnmson e Vlissides (Gof) são expressas em termos de objetos e interfaces ao invés de paredes e portas, mas no cerne dos dois tipos de patterns está uma solução para um problema dentro de um contexto. Bem mais tarde Martin Fowler no prefácio do livro Core J2EE Patterns, disse o que eu acho que é a definição mais fácil de entender: "Pattern é um modo de capturar expertise em projeto para catalogar soluções práticas de problemas recorrentes." []s Luca
GOSTEI 0
Louzadalima

Louzadalima

09/04/2009

Bom, só para constar nas atas... eu diria, em um grosso modo, que são modelos de soluções bem definidos para problemas (ou negócios) que já são conhecidos, que já estão, em grande parte, testados, validados e funcionais. Valeu???
GOSTEI 0
João Ferreira

João Ferreira

09/04/2009

Olá pessoas Eu entendo por padrões Falow :!:
GOSTEI 0
Jean Rodrigues

Jean Rodrigues

09/04/2009

Design Patterns nao é um conceito simples de definir com poucas palavras. Mas a gente tenta :D Um Design Pattern, a meu ver, é um conjunto de premissas com um fundo empírico capaz de aludir situacoes específicas, ou seja, capaz de originar uma solucao para um problema conhecido. :!:
GOSTEI 0
Cleuber_s

Cleuber_s

09/04/2009

Um artigo muito útil : http://www.guj.com.br/user.article.get.chain?article.id=137&page=1 (bom pra começar) :!:
GOSTEI 0
Cleuber_s

Cleuber_s

09/04/2009

Realmente, o conceito de padrões não é simples. A seguir, transcrevo um trecho da minha monografia de projeto final, obviamente, sobre padrões:
Uma das definições mais conhecidas é a de que um padrão [b]"é uma solução para um problema em um contexto"[/b] [GoF95]. Apesar de não estar errada, esta definição é simplista e incompleta. Em [GoF95], os autores contextualizam esta afirmação, completando-a. Porém, muitas vezes esta definição apresentada isolada, passando uma idéia incorreta. Para uma definição melhor, devemos entender o que são o contexto, o problema e a solução: - [b]Contexto[/b] se refere a um conjunto de situações nas quais o padrão se aplica [LeaFAQ]. Exemplo: "Processamento de fluxos de dados." - [b]Problema[/b] se refere a um conjunto de forças - objetivos e limitações - que ocorrem neste contexto [LeaFAQ]. Exemplo: "Aprimoramentos futuros devem ser possíveis por recombinação dos elementos; Segmentos não adjacentes não compartilham dados; etc." - [b]Solução[/b] se refere à forma canônica ou regra do projeto, que podemos aplicar para resolver estas forças [LeaFAQ]. Exemplo: "Dividir a tarefa em vários passos seqüenciais, conectados pelo fluxo de dados do sistema (...)." Além de apresentar o contexto e resolver o problema, faltam pelo menos três coisas: - [b]Repetição[/b], que faz a solução relevante em situações além da apresentada [Vlis97]. - [b]Explicação[/b], que nos dá o conhecimento para adaptar a solução a variantes do problema. As explicações nos padrões reais geralmente se situam na descrição e resolução de forças e/ou conseqüências da aplicação [Vlis97]. - Um [b]nome[/b] pelo qual podemos nos referir ao padrão [Vlis97]. Padrões criam um [b]vocabulário comum[/b] aos desenvolvedores, que usam os nomes dados como termos abstratos ao se referir a construções representadas por eles. Por exemplo, ao invés de explicar como uma classe-filha finge ser e contém sua classe-pai, delegando suas funções a ela e acrescentando função de cache, poderia-se simplesmente dizer que as classes se relacionam pelo padrão [i]Proxy[/i] [GoF95], com política de cache. A compactação da frase não omite informação alguma, nem simplifica demais a situação. Pelo contrário, ela facilita o entendimento usando um conhecimento adquirido referenciado por um nome. É comum, porém, o erro de se pensar em padrões como simplesmente [i]jargões, regras, truques de programação ou estruturas de dados[/i]. Isso seria menosprezá-los. É natural tentar reduzir algo não familiar a algo conhecido, especialmente se não somos motivados a investigá-lo. Isto, freqüentemente, é baseado em familiaridade superficial e um pouco de cinismo, não em experiência [Vlis97]. Apesar de muitas vezes um padrão envolver todos estes outros conceitos, equipará-lo a apenas um deles seria simplificá-lo demais. Por outro lado, também é comum a crença de que padrões garantem reusabilidade, produtividade, ou de que geram arquiteturas completas. [b]Padrões não garantem nada[/b]. Pessoas os usam para buscar reusabilidade, produtividade e gerar arquiteturas. Os padrões não fazem nada para retirar o homem do processo criativo, apenas são um ferramenta a mais para uso do desenvolvedor [Vlis97]. Referências: [GoF95] GAMMA, Erich, HELM, Richard, JOHNSON, Ralph, VLISSIDES, John. Design Patterns: Elements of Reusable Software. 18. ed. Reading: Addison Wesley Longman, Inc. 1998. ISBN 0-201-63498-8 [LeaFAQ] LEA, Doug. Patterns-Discussion FAQ, na State University of New York. dez/2003, http://g.oswego.edu/dl/pd-FAQ/pd-FAQ.html [Vlis97] VLISSIDES, John. Patterns: The Top Ten Misconceptions. Object Magazine, March 1997.
Notem que estas não são palavras minhas, mas de John Vlissides, da Gangue dos Quatro (alguém bem mais apropriado para falar do assunto :) ). Desculpem pelo texto extenso, talvez impróprio para um fórum, mas eu acho que é melhor uma explicação mais completa, mesmo que extensa, do que uma resumida, mas simplista e incompleta, que confunde mais do que explica. :) Tetsuo
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

:evil: :evil: :evil: :evil: :evil: Gostei das respostas... Olá Tetsuo, não é impróprio não! :) Quanto mais informação, melhor para a comunidade. :!: :!:
GOSTEI 0
Vitor Pamplona

Vitor Pamplona

09/04/2009

[quote="vfpamp"]Olá Tetsuo, não é impróprio não! :) Quanto mais informação, melhor para a comunidade.
É que muitas vezes eu vejo posts do tipo "... mas em poucas palavras, eu não quero ter que ler mais um daqueles artigos extensos".
GOSTEI 0
POSTAR