Design Patterns

21 respostas
R

Fala galera…

sempre vi mtos topicos aki no GUJ sobre padroes de codificacao em Java…

alguem poderia me dar um toque sobre isso?? quais existem?? mais comuns?
os mais adequados em cada caso (se isso se aplica a eles)…

eh q fica meio complicado cair lendo mta coisa sobre algo mto novo…entao se alguem puder dar uma pequena explicacao ou tiver algum tutorial sobre o assunto…

valew galera.

21 Respostas

Bani

Existem muitos design patterns “oficialmente” reconhecidos…

Existem design patterns gerais para orientação a objetos, para J2EE, para usos específicos em outras tecnologias específicas (EJB, XML, etc), e por aí vai…

Dizer quais os mais adequados para cada uso acaba sendo praticamente a definição do Design Pattern. Normalmente, quando você vai estudar um, existe uma estrutura de documentação bem objetiva que fala mais ou menos para que serve, como usar e conseqüências.

Então acho que não existe um “tutorial geral sobre design patterns”, porque realmente cada um é cada um e não dá para explicar dezenas de design patterns em um texto genérico. Se quiser aprender vai ter que ser pelo método difícil mesmo… Não precisa ficar decorando todos os detalhes de cada um, o importante é ter em mente que “alguém já inventou uma solução para isso” quando você se deparar com um problema real. Aí basta ir consultar novamente sua fonte para ver como implementá-la.

Quanto aos mais comuns, o livro do GoF recomenda que a pessoa comece estudando pelos seguintes:

  • Abstract Factory
  • Adapter
  • Composite
  • Decorator
  • Factory Method
  • Observer
  • Strategy
  • Template Method
R

valew pela dica Bani…

mas e qdo eu estiver codificando p/ client-server?? qual design seria mais apropriado ou mais usado??

ouvi falar mto do Singleton e MVC…qdo sao usados??

valew Bani.

Rafael_Steil

Tanto sobre MVC quanto sobre Singleton ja foi discutido aqui no forum, ha varias mensagens a respeito.

Ha varias situacoes possiveis pra usar um pattern. O recomendavel eh voce conseguir algum livro ( Design Patterns, do GOF ), e o Core J2EE Patterns sao muito bons.

Rafael

R

Rafael…

onde posso encontrar esses livros??
tentei na TempoReal, mas nao achei eles lah…

sabe a faixa de precos desses livros??

valew

Rafael_Steil

Tem na Tempo Real sim:

Design Patterns - GOF
Core J2EE Patterns

Rafael

R

putz…
verdade Rafael…

nem tinha percebido…foi mal…

valew.

luiz_ross

Uma unica critica que eu tenho ao Core J2EE Patterns é que todo e qualquer padrão de design descrito no livro foca apenas aplicações Web. Será que se esqueceram das aplicações desktop? Será que os design patterns não se aplicam as aplicações desktop? Não sei a opinião da galera quanto a isso, de todo mundo agora adotar o browser pra rodar todo e qualquer tipo de aplicação. Lendo a JAVA MAGAZINE desse mês eu notei que há um certo receio das empresas em trabalhar com aplicações desktop em JAVA. Eu mesmo detesto trabalhar com Web, trabalho por obrigação, o meu negócio é aplicação desktop. Acho particularmente nojento codificar em jsp, html, javascript, servlet. Quando será que vão focar no uso de design patterns em aplicações desktop? Eu sei que vários padrões são aplicaveis a aplicações locais, mas a gente tem que ficar se matando pra poder migrar um padrão utilizado na web pra uma local.

R

boa luiz… :lol: :lol: :lol: 8) :slight_smile:

finalmente encontrei alguem aki q prefira aplicacoes desktop…

sao mto melhores p/ usar e abusar dos recursos do java…no JSP, vc fica preso com os recursos (ridiculos) do html…

fazendo sistemas desktop, vc explora mto mais a linguagem…

isso sem falar da clarezaq de codigo q eh em java enqto no html vc nao entende nada do codigo…soh q sabe mesmo os comandos…horrivel

falow

D

Se o idioma não for uma barreira, existe um free-book (que eu achei muito bom) de Bruce Eckel, Thinking in Patterns, disponível para download em:

http://www.mindview.net/Books/TIPatterns/

(também prefiro as aplicações desktop, muito embora não possa me incomodar com a web, enfim… :slight_smile: ).

luiz_ross

Fala verdade, quando a gente mexe com Web, nosso caso programação, tem sempre um chefe FDP que chuta o design da aplicação ou site pra gente fazer e não pro WebDesigner que tem obrigação de montar todo o html e deixar só a lógica(funcionalidade da aplicação) pra gente, normalmente a gente tem que fazer tudo, e isso me torra o saco.

R

verdade luiz…

ainda bem q no nosso caso aqui, a gente soh cuidou da programacao das telas…os layout´s jah estavam prontos…
e ainda tinha uma pessoa responsavel por altearr o layout das telas, se preciso…

mas sei q isso eh uma excecao, infelizmente…

quem sabe essa ferramenta venha a facilitar nossa vida…

falow

Rafael_Steil

Tambem nao eh assim. Tem sistemas que sao feitos pra Web, e nao interessa ter em desktop.
Me diz, como voce faria uma loja de comercio eletronico usando Swing?? forcaria o usuari oa baixar a aplicacao?

Apesar os patterns usarem a Web como exemplo, eh muito simples adaptar para outrs situacoes. Se voce entende da tecnologia, nao importa se o exemplo eh em C++ ou Java, pois o que importa eh a especificacao em si.

Rafael

luiz_ross

Tudo bem, uma aplicação de e-commerce tem que ser necessariamente ser feita pra WEB, senão não se chamaria comércio eletrônico. Eu não desmereço as aplicações web, só acho que o potencial de aplicações desktop é subestimado e deixado de lado quase sempre. É lógico quando há dependência de hardware, não temos opção, web é a unica opção viável quando se diz independência de plataforma e consumo baixo de hardware. Pra mim, web ainda é muito limitada em relação a uma aplicação desktop, por exemplo, eu quero fazer uma treeview no browser e essa treeview irá mostrar a arvore de diretórios da máquina, seja ela local ou remota. Isso fica relativamente fácil de implementar em uma aplicação desktop, agora via web envolve muito mais conhecimento, envolve jsp, servlet, redes, SO, xml, html e por ai vai, agora em java, swing, redes(sockets ou rmi), SO, só ai já cortou pela metade seu trabalho. É isso que eu penso, muito trabalho e esforço pra chegar no fim e ela não suprir todas as necessidades(o que é comum acontecer) do seu cliente. Mais um ponto em que aplicações web pecam é na hora que a rede tá carregada, a aplicação senta e não quer levantar mais.

APLICAÇÃO WEB (SUCKS)!!!

Rafael_Steil

Mas ai eh que esta o lance. Nem toda aplicacao pode ser feita em desktop, e nem toda em Web.
O que acontece eh que muito se fala da web no geral… as empresas soh pedem pra web, ou tem que ser compativel, ou funcionar em tudo quanto eh lugar do mundo etc, etc…

A questao nao eh bem pela que voce esta vendo… ha varios fatores a serem analisados na hora de decidir que tipo de plataforma/solucao usar, nao eh simplesmente “vai ser desktop” ou “vai ser web”… ha coisas que os clientes pedem que eh praticamente impossivel ( ou extremamente dificil ) fazer para a Web, mas como ha muitos recursos que tornariam a aplicacao desktop complicada, uma aplicacao web acaba sendo escolhida…

Voce sabe, nao existe uma regra especifica… tudo depende do caso e das necessidades do cliente. E nessas, quem sempre acaba de ralando eh progrmador, que tem que implementar tudo…

Rafael

luiz_ross

Ainda sim acho que a importância dada a web é muito grande e se esqucem do poder das aplicações desktop que ao meu ver, a gama de recursos é bem maior. Mas como vc disse Rafael, o cliente é quem manda(seja ele burro ou não) e a gente que se fod… pra implementar as viajadas que eles dão, achando que nós somos mágicos.

Rafael_Steil

Sim, concordo que dao trela demais pra Web… assim como XML, que dizem ser a revolucao mas na verdade apenas padronizaram algo…

Rafael

ozielneto

[color=“red”]
Basicamente, como já foi dito, os principais Patterns estão decritos como GOF (Gang of Four), e podem ser encontradas várias referências, inclusinve o Think in Patterns que tbm fá foi mencionado.

E especialmente para a J2EE, existem os J2EE Design Patterns com estratégias de implementação diferentes, e podem ser encontrados aqui:
http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html

Bom estudo a todos.
[/color]

R

caro oziel…

no caso de aplicacoes desktop, quais os patterns mais utilizados??

valew

Rafael_Steil

Voce pode adaptar praticamente qualquer patter para qualquer situacao… front controoler, bridge, adapter, command … eh raro ter um pattern especifico pra Web…

Como ja disse nas outras mensagens, nao adianta a gente explicar ou dizer quais os patterns usados pra web ou desktop… voce ter que estudar os patterns mais conhecidos ( ou seja, contido nos livros ), pois somente assim voce, por conta propria, sabera quando utilizalos.

Existem varias e varias maneiras diferentes de implementar um pattern, e sua utilizacao depende do tipo de aplicacao ( publico-alvo tambem eh tipo ) e necessidades. Compre um livro e estude os patterns, pois apos isso tudo ficara muito mais claro para voce.

Rafael

Bani

Atendendo a pedidos de quem quer começar a aprender sobre Design Patterns, a GlobalCode vai estar dando uma casual classe sobre este assunto na sexta-feira da semana que vem (04/04).
Mais informações aqui

P.S.: como sempre, estarei lá.

ozielneto

A Sun Education possui um treinamento excelente de J2EE Design Patterns, e trás ainda as melhores estratégias de implementação dos mesmos com os melhores intrutores certificados.

O código do treinamento é o SL500:
Veja programa: http://suned.sun.com/US/catalog/courses/SL-500.html

Bom estudo a todos.

Criado 24 de março de 2003
Ultima resposta 26 de mar. de 2003
Respostas 21
Participantes 6