| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/11/2006 05:00:37
|
Sombriks
Java Ninja
![[Avatar]](/images/avatar/65b0df23fd2d449ae1e4b2d27151d73b.jpg)
Membro desde: 14/04/2005 16:36:03
Mensagens: 250
Localização: Fortaleza, CE
Offline
|
Senhores, tenho o seguinte cenário:
- Sistema desktop com banco de objetos+interface Swing;
- uma única classe guarda as instâncias de todas as janelas, do banco e dos objetos de busca e inserção existentes; possui também métodos que são análogos a certos casos de uso, como por exemplo "inserir cliente", e por aí vai.
- cada janela recebe uma instância desse objeto que contém instâncias e métodos. dessa forma os ouvintes se aproveitam da interface pública desse kra pra fazer a coisa funcionar.
bom, não sei se expliquei tudo, mas gostaria de saber se isso se enquadra em algum padrão de projeto. E se sim, como melhorar a coisa toda.
grato.
|
Linux user #391803.
http://counter.li.org/
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/11/2006 10:46:56
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Sombriks wrote:- uma única classe guarda as instâncias de todas as janelas, do banco e dos objetos de busca e inserção existentes; possui também métodos que são análogos a certos casos de uso, como por exemplo "inserir cliente", e por aí vai.
Toda classe que faz mais de uma coisa viola os princípios básicos de coesão. Esta classe deve ter sido feita por alguém com pouca noção de programação estruturada, nenhum conhecimento de programação modular e pouca experiência em programação orientada a objetos.
Sombriks wrote:- cada janela recebe uma instância desse objeto que contém instâncias e métodos. dessa forma os ouvintes se aproveitam da interface pública desse kra pra fazer a coisa funcionar.
O problema da classe errada se espalha para o resto do sistema
Sombriks wrote:bom, não sei se expliquei tudo, mas gostaria de saber se isso se enquadra em algum padrão de projeto. E se sim, como melhorar a coisa toda.
Isto se enquadra no padrão de programação orientada a exemplo de como não se fazer. Como melhorar? Simples: Fazer como todo mundo faz com cada classe com sua responsabilidade.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/11/2006 13:15:20
|
Java Player
JavaTeenager
![[Avatar]](/images/avatar/9910489e4ff310896dce21303a8e7fda.png)
Membro desde: 17/08/2006 17:11:57
Mensagens: 180
Offline
|
Este é o famoso Padrão de Projeto Gambis.
Veja:
Gambi Design Patterns catalogados
Static Spree: Um dos patterns mais utilizados da POG (Programação Orientada a Gambiarras). O objetivo desse padrão é que tudo fique visível em qualquer canto, porque private é coisa de gente envergonhada. Também conhecido por Public Static Spree, pois comumente tudo é feito "public static".
Lone Wolf: Também conhecido por Highlander (só pode haver um), esse é a boa e velha "classe-faz-tudo". O sistema todo está concentrado numa classe procedural que faz tudo, geralmente usando o padrão Static Spree.
The Hitchhiker's Guide to the Galaxy: um objeto que trafega por tudo quanto é canto, mas normalmente só um ou dois métodos fazem alguma coisa com ele, o resto só repassa.
Nonsense Flag: Por um legítimo impulso gambiarrizador solucionador de problemas, o desenvolvedor salpica um monte de variáveis com nomes sensacionais como "newCounter2", "jaTrocouDeAba", "passouPorAqui", "numeroMagico" e etc.
RCP Pattern: Significa Reuse By Copy-and-Paste (Reuso por copiar e colar). O RCP dita que, na pressa, quando não dá pra fazer a coisa por herança, basta copiar e colar, quantas vezes for necessário.
Existem vários outros. Veja em http://desciclo.pedia.ws/wiki/POG
|
SCPJ 6 - 93%
Quizzes .com.br
Jogos para Celular .com.br
Jogos para Android .com.br
Android Gameplay .com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/11/2006 14:51:45
|
Cocota
JavaChild
![[Avatar]](/images/avatar/fdad3b5b2200b598dfde9517e5b426a8.jpg)
Membro desde: 03/04/2006 21:17:41
Mensagens: 149
Localização: Natal-RN
Offline
|
POG é o que há de mais moderno. Lá na faculdade é só o que se fala.
- - -
Sombriks,
Do jeito que li seu texto eu já ia pensando que isso aí tá uma Gambiarra livrada. Aceite isso como uma crítica construtiva e siga os procedimentos do Mestre Luca.
|
Ez RulEz Até de Madrugada |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/11/2006 15:48:32
|
maquiavelbona
JWizard
![[Avatar]](/images/avatar/24bea84d52e6a1f8025e313c2ffff50a.jpg)
Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline
|
Boa tarde!
Ouso dizer que há sim alguns padrões. Tais como:
Blob (ou God Object) : http://en.wikipedia.org/wiki/God_object ;
Big Ball of Mud : http://en.wikipedia.org/wiki/Big_ball_of_mud ;
mas possívelmente há outros. Podes ver mais em:
http://en.wikipedia.org/wiki/Anti-pattern
Até!
|
----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)
"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/11/2006 17:49:40
|
Dieval Guizelini
Virtual Machine Man
![[Avatar]](/images/avatar/9fc92b9c69b711dcb880ccb743fc6f06.jpg)
Membro desde: 05/07/2006 14:39:44
Mensagens: 570
Localização: Curitiba - PR
Offline
|
Esta classe muito provavelmente é a "interpretação" ou "tradução" dos padrões Bridge ou façade dos GoF.....
por acaso é código escrito em ferramentas MS?
tá cheio de gênios .... popularizando o mundo com a qualidade MS.
hehehehe...
|
Sun Certified Java Programmer 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/11/2006 01:04:44
|
Sombriks
Java Ninja
![[Avatar]](/images/avatar/65b0df23fd2d449ae1e4b2d27151d73b.jpg)
Membro desde: 14/04/2005 16:36:03
Mensagens: 250
Localização: Fortaleza, CE
Offline
|
huahuahua, eu sabia que estava ruim, mas agora eu tô vendo que está pésimo!
Ei, lembrem-se que não há framework por trás, e eu realmente gostaria de umas dicas sobre interligação de módulos; veja por exemplo a janela A e a Janela B; como trocar informações à luz dos padrões de projeto?
Seria de grande ajuda, e eu garanto repassar um dia tudo o que eu aprender,
qq dica agradeço!
|
Linux user #391803.
http://counter.li.org/
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2006 02:47:28
|
Sombriks
Java Ninja
![[Avatar]](/images/avatar/65b0df23fd2d449ae1e4b2d27151d73b.jpg)
Membro desde: 14/04/2005 16:36:03
Mensagens: 250
Localização: Fortaleza, CE
Offline
|
É isso aí, ninguém tem contra-cenário pra mim? Muito legal o senso de comunidade da comunidade...
|
Linux user #391803.
http://counter.li.org/
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2006 02:51:18
|
juzepeleteiro
Virtual Machine Man
Membro desde: 19/07/2005 16:01:40
Mensagens: 583
Localização: Rio de Janeiro
Offline
|
Sombriks wrote:É isso aí, ninguém tem contra-cenário pra mim? Muito legal o senso de comunidade da comunidade...
Aham... senso de comunidade da comunidade... bonito isso.
|
http://ofert.as - Cupons de desconto |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2006 04:03:05
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Sombriks wrote:É isso aí, ninguém tem contra-cenário pra mim? Muito legal o senso de comunidade da comunidade...
Penso que você não leu minha resposta e então vou repetir:
Como melhorar? Simples: Fazer como todo mundo faz com cada classe com sua responsabilidade.
É feio dar "UP" em posts de forum.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2006 11:30:32
|
julianostr
GUJ Ranger
![[Avatar]](/images/avatar/ca7e09eacf1ae34bc819d495c5adfed9.jpg)
Membro desde: 31/03/2006 14:16:14
Mensagens: 855
Localização: Blumenau - SC
Offline
|
Cara o que é esse tal de "UP" ???
|
LASER
Light Amplification by Stimulated Emission of Radiation |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2006 11:59:54
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
julianostr wrote:Cara o que é esse tal de "UP" ???
Para quem não tem google, explico que fazer UP em forum é postar de novo para tentar trazer o tópico de novo para ser visto. Considera-se como falha na netiqueta.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2006 12:13:20
|
julianostr
GUJ Ranger
![[Avatar]](/images/avatar/ca7e09eacf1ae34bc819d495c5adfed9.jpg)
Membro desde: 31/03/2006 14:16:14
Mensagens: 855
Localização: Blumenau - SC
Offline
|
Entendo....
Bom, e se o cara cria o tópico às 8 da manhã e algumas pessoas lêem ele durante um tempo mas ninguém responde (sei lá, por muitas razões)......vai chegar uma hora em que, de tantos tópicos criados, esse tópico vai caindo, caindo até sumir da primeira página (tópicos recentes)...então danou-se...daí o que ele faz? Acessa o tópico e coloca mais um frase desesperadora pro tópico "subir"....
Qual seria o procedimento correto nesse caso?
Putz, já fugimos do assunto original, desculpe....
|
LASER
Light Amplification by Stimulated Emission of Radiation |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2006 12:19:53
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
O procedimento mais aceitavel eh que o autor da pergunta que nao foi respondida procure mais informacao no forum ou na net, e poste algo que acrescente valor ao topico, de forma a trazer discussao pra ele, ao inves de simplesmente chamar atencao ao topico, que eh o caso do 'up'.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2006 12:21:45
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
O procedimento correto é imaginar que se ninguém respondeu é porque ninguém sabe e então a gente deve ir no google mesmo. Bom é quando o cara volta aqui e coloca a solução que ele achou no google. Este é o espírito de comunidade.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
|
|