Que padrão é esse? :D  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
Sombriks
Java Ninja
[Avatar]

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/
Luca
Moderador
[Avatar]

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/
[Email] [WWW]
Java Player
JavaTeenager
[Avatar]

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
Cocota
JavaChild
[Avatar]

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
[WWW] [MSN]
maquiavelbona
JWizard
[Avatar]

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)
Dieval Guizelini
Virtual Machine Man
[Avatar]

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
[WWW]
Sombriks
Java Ninja
[Avatar]

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/
Sombriks
Java Ninja
[Avatar]

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/
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
[Email] [WWW] [MSN]
Luca
Moderador
[Avatar]

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/
[Email] [WWW]
julianostr
GUJ Ranger
[Avatar]

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
Luca
Moderador
[Avatar]

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/
[Email] [WWW]
julianostr
GUJ Ranger
[Avatar]

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
cv
Moderador
[Avatar]

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'.
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Luca
Moderador
[Avatar]

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/
[Email] [WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team