Opinião sobre padrões de projeto  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

marcosalex wrote:

Mas a afirmação não está de todo errada. Criar um singleton pra uma conexão deveria ser uma coisa que o Java deveria fazer transparente. Podem detonar o Delphi tanto que for, mas a conexão de banco de dados dele não precisa de nada disso pra ser única.


Veja que um Connection não é um Singleton. Podem (devem até) existir várias instancias desse objecto (interface).
É errado reaproveitar a mesma conexão ao longo de muito tempo.
A solução é o uso de um pool de objetos (que é um padrão).

No máximo vc terá o uso de shared Object ( um padrão que instancia e mantém uma unica instancia partilhada para todas as chamadas mas não obriga forçar a classe a asó produzir um unico objecto - exemplo de shared object é visto em Integer.valueOf() )

Ha muita confusão sobre o que é um Singleton. Singleton são raros. Muito raros.Procure na JSE por Singletons e verá.

A confusão sofre o q é um padrão implica no mesmo que usar a palavra errada num contexto.Isso distorce a comunicação e leva a erros de design.

Os padrões não estão errados, quem erra é quem os usa mal.

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
Juk
JavaChild
[Avatar]

Membro desde: 14/07/2006 18:09:33
Mensagens: 104
Offline

LedRenan, dá uma olhada nesse site http://www.dofactory.com/Patterns/Patterns.aspx

Nele cada padrão tem um "frequency of use", você pode usar como base pra ver quais os mais usados.

Meu blog: http://blogdojuk.blogspot.com
tnaires
GUJ Master
[Avatar]

Membro desde: 22/12/2003 08:05:58
Mensagens: 1678
Localização: Porto Alegre/RS - Natal/RN
Offline

sergiotaborda wrote:Veja que um Connection não é um Singleton. Podem (devem até) existir várias instancias desse objecto (interface).
(...)
Ha muita confusão sobre o que é um Singleton. Singleton são raros.

Concordo. E no caso de objetos de conexão a banco de dados, muitos usam singleton quando o que querem na verdade é acesso global a eles - e isso não implica necessariamente em uma única instância.

Tarso Nunes Aires

Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires

bruno_rg
Entusiasta Java
[Avatar]

Membro desde: 04/01/2007 17:51:54
Mensagens: 24
Offline

Recomendo a leitura do Head First Design Patterns. Lá tem um monte de exemplos em Java. Depois de ler este é mais fácil entender o livro do GoF.

O aprendizado é constante, mesmo quando pensamos que não há mais o que aprender.
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

Link_pg wrote:
mochuara wrote:Padrões de projeto são uma falsa sensação de conhecimento. A existência de padrões no código pode até parecer código bem projetado mas antes é sinal de fraqueza da linguagem de programação utilizada. Padrões são implementados no nível da linguagem e não em um carrinho de compras.

Até hoje não entendi muito bem essa "fraqueza" da linguagem que muitas pessoas se referem. Porque pelo que entendo, se você consegue representar aquele padrão de projeto, como a linguagem pode ser "fraca"? Claro que algumas linguagens facilitam a aplicação de alguns padrões graças aos seus recursos, deixando-os implícitos e/ou com uma leitura mais "amigável", mas não sei se isso prova que ela é mais "forte".

Você podia por favor explanar um pouco mais sobre isso?

Abraços


Pra mim, linguagem forte exige escrever pouco porque o conceito que vc precisa ja foi abstraido pela linguagem.
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

sergiotaborda wrote:
Isso não é uma implementaçao da linguagem, é o uso da linguagem da mesma forma que em java vc usa a linguagem.
Implementado na linguagem seria como o object do scala. se vc declara class vc está dizendo que pode criar muitos objetos - modo normal, mas se vc declara como object (palavra chave) o scala sabe que aquilo é um singleton. Por isso que eu falei que a linguagem pode dar suporte, mas não pode dar suporte a todos os padrões.


Seria como object se fosse implementado em Scala. E seria como lisp se fosse em Clojure. Essa distinção se é implementado na linguagem ou não é irrelevante se o objetivo foi alcançado e com menos esforço.
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

sergiotaborda wrote:Os padrões não estão errados, quem erra é quem os usa mal.


Com certeza. Por isso sou a favor da legalização de algumas drogas.

Padrões de projeto assim como a guerra contras as drogas ambos não resolvem os problemas mais difíceis.
bobmoe
GUJ Ranger
[Avatar]

Membro desde: 11/07/2006 20:45:48
Mensagens: 806
Localização: Sampa
Offline

LedRenan wrote:
Como podemos ver, existem muitos padrões. Estes padrões são muito bem detalhados pelo livro "Padrões de Projeto: soluções reutilizáveis de software orientado a objetos" do GOF. Mas hoje, estou chegando a conclusão de que não vou querer abordar todos os padrões no meu TCC. Porém não estou conseguindo enxergar critérios para escolher quais padrões abordar no TCC.

Comece pelos mais usados. Só de vc pesquisar quais são, vai estar entendendo melhor o motivação de cada um.

Patterns são apenas boas práticas, estão aí para facilitar nossa vida.
Portanto, se o pattern estiver facilitando sua vida está sendo usado de forma correta, agora se estiver atrapalhando está no lugar errado.

BOB - Roberto Nogueira - bobmoe.blogspot.com
[WWW] [MSN]
LedRenan
Debugger

Membro desde: 13/05/2007 16:54:48
Mensagens: 72
Offline

bruno_rg wrote:Recomendo a leitura do Head First Design Patterns. Lá tem um monte de exemplos em Java. Depois de ler este é mais fácil entender o livro do GoF.


Este livro realmente é muito bom. Li e estou lendo mais uma vez para agora fazer o TCC.
Ao mesmo tempo estou fazendo a primeira leitura do livro do GoF, na qual julgo (até o momento) uma ótima referência no assunto.

Juk wrote:LedRenan, dá uma olhada nesse site http://www.dofactory.com/Patterns/Patterns.aspx

Nele cada padrão tem um "frequency of use", você pode usar como base pra ver quais os mais usados.


Vou analisar este site. Realmente é algo novo e acredito que pode ser bem útil no desenvolvimento.

bobmoe wrote:Comece pelos mais usados. Só de vc pesquisar quais são, vai estar entendendo melhor o motivação de cada um.

Patterns são apenas boas práticas, estão aí para facilitar nossa vida.
Portanto, se o pattern estiver facilitando sua vida está sendo usado de forma correta, agora se estiver atrapalhando está no lugar errado.


Essas dúvidas surgiram conforme o caminhar do desenvolvimento do trabalho. Acredito que hoje tenho muito mais facilidade em enxergar e aplicar um padrão do que outro. Acredito que esteja faltando ainda é experiência deles dentro de um sistema, já que o mal uso, posso comprometer a qualidade do código ou entrar em uma fria.

Agradeço as sugestões.
bobmoe
GUJ Ranger
[Avatar]

Membro desde: 11/07/2006 20:45:48
Mensagens: 806
Localização: Sampa
Offline

LedRenan wrote:
Essas dúvidas surgiram conforme o caminhar do desenvolvimento do trabalho. Acredito que hoje tenho muito mais facilidade em enxergar e aplicar um padrão do que outro. Acredito que esteja faltando ainda é experiência deles dentro de um sistema, já que o mal uso, posso comprometer a qualidade do código ou entrar em uma fria.

Agradeço as sugestões.

Vc poderia pegar frameworks ou sistemas bem sucedidos e explicar que "tal coisa é possível ser feita daquela maneira tão elegante por que usa o pattern tal..."
Por exemplo, no caso do Hibernate você poderia dizer que a opção lazy usa o pattern Proxy e isso facilitou a implementação por tais motivos...

BOB - Roberto Nogueira - bobmoe.blogspot.com
[WWW] [MSN]
bruno_rg
Entusiasta Java
[Avatar]

Membro desde: 04/01/2007 17:51:54
Mensagens: 24
Offline

mochuara wrote:
sergiotaborda wrote:Os padrões não estão errados, quem erra é quem os usa mal.


Com certeza. Por isso sou a favor da legalização de algumas drogas.

Padrões de projeto assim como a guerra contras as drogas ambos não resolvem os problemas mais difíceis.


Design Patterns não existem para resolver os problemas mais difícies. Cada Padrão é uma solução que pode ser replicada para um problema conhecido em um contexto específico.
Se um problema tem uma solução que não pode ser replicada quando esse mesmo problema ocorrer em outra ocosição então não existe um pattern para essa solução.
O problema é que muita gente quer utilizar patterns para casos que não são aplicáveis.

O aprendizado é constante, mesmo quando pensamos que não há mais o que aprender.
Leonardo3001
GUJ Ranger

Membro desde: 04/07/2007 18:28:58
Mensagens: 975
Offline

O problema da abordagem de padrões não é nem seu uso excessivo (também ocorre). Mas a maneira como encaramos ela.

Idealmente, deveríamos primeiro pensar no problema, encontrar uma solução possível e, caso faça sentido, usar um pattern. Infelizmente, esse não é o caminho utilizado por numerosos desenvolvedores. Pra eles, interessa saber que: vamos usar um MVC aqui, vamos utilizar o Singleton para manter um único objeto desse, depois, usaremos um DAO, e um Façade; e finalmente a pergunta: "como vamos resolver o problema?".

Percebe? Cada vez mais as pessoas preferem se manter presas num pacote de patterns antes de pensar na solução, pois dá-se uma impressão de um processo prescritivo, algo que, com software, não existe. Por isso é que tá cheio de gente no GUJ perguntando sobre Repositories, DAO ou MVC, enchendo o saco pra que deem a eles a receita de bolo pra usar em seus projetos, mesmo as pessoas respondendo que tudo depende.


Leonardo Veríssimo
-------------------------------------------------
Objectzilla
[WWW]
marcosalex
GUJ Expert
[Avatar]

Membro desde: 20/02/2008 12:32:59
Mensagens: 3372
Offline

"

This message was edited 1 time. Last update was at 02/02/2012 09:11:31

[Yahoo!] aim icon [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á

Leonardo3001 wrote:O problema da abordagem de padrões não é nem seu uso excessivo (também ocorre). Mas a maneira como encaramos ela.

Idealmente, deveríamos primeiro pensar no problema, encontrar uma solução possível e, caso faça sentido, usar um pattern. Infelizmente, esse não é o caminho utilizado por numerosos desenvolvedores. Pra eles, interessa saber que: vamos usar um MVC aqui, vamos utilizar o Singleton para manter um único objeto desse, depois, usaremos um DAO, e um Façade; e finalmente a pergunta: "como vamos resolver o problema?".

Percebe? Cada vez mais as pessoas preferem se manter presas num pacote de patterns antes de pensar na solução, pois dá-se uma impressão de um processo prescritivo, algo que, com software, não existe. Por isso é que tá cheio de gente no GUJ perguntando sobre Repositories, DAO ou MVC, enchendo o saco pra que deem a eles a receita de bolo pra usar em seus projetos, mesmo as pessoas respondendo que tudo depende.



Resposta excelente. Como foi excelente também o que o Paulo Silveira escreveu em http://www.guj.com.br/posts/list/137942.java#742409

Este mundaréu de padrões que tentam jogar em cima de quem começa a programar é um dos males do Java atual. Já acho isto faz tempo e até tive rapidamente a oportunidade de falar isto com o Paulo na última vez que almoçamos juntos. Seria muito melhor deixar a criatividade fluir e tentar resolver o problema. Tentem. Pode até ser que reinventem a roda ou encontrem dificuldades. Mas tentem antes de que algum cara que escreve complicado sugira o uso de algo que a gente só entende depois que sofre na carne.

Como eu disse para o Paulo, o estudo dos padrões não deve preocupar o desenvolvedor que ainda não é um bom programador. Antes de estudar padrões é preciso conhecer a API do Java, ler o Effective Java e entender coisas como as vantagens de desenvolver para interfaces.

[]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]
formigaotts
Debugger
[Avatar]

Membro desde: 13/12/2006 19:04:14
Mensagens: 60
Offline

LedRenan wrote:
O tema do meu TCC é sobre "Design Patterns com desenvolvimento em Java" na qual vou procurar demonstrar exemplos de alguns padrões.


LedRenan, não consegui ver aplicabilidade para o seu TCC. Você já fez o Ante-Projeto (Projeto de Pesquisa)?
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team