| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 09:44:00
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
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 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 10:08:31
|
Juk
JavaChild
![[Avatar]](/images/avatar/f2b6806d6ed60d2d87b0dd5ae62e6f20.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 10:44:57
|
tnaires
GUJ Master
![[Avatar]](/images/avatar/5f6371c9126149517d9ba475def53139.png)
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
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 11:30:08
|
bruno_rg
Entusiasta Java
![[Avatar]](/images/avatar/75b4f712b9a4860516a726646282d56a.jpg)
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. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 14:48:38
|
mochuara
GUJ Master
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 14:56:29
|
mochuara
GUJ Master
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 15:03:19
|
mochuara
GUJ Master
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 15:21:15
|
bobmoe
GUJ Ranger
![[Avatar]](/images/avatar/9cc25407f209e031babdac7d3c520ccb.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 16:18:36
|
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.
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 17:11:22
|
bobmoe
GUJ Ranger
![[Avatar]](/images/avatar/9cc25407f209e031babdac7d3c520ccb.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/09/2009 19:49:26
|
bruno_rg
Entusiasta Java
![[Avatar]](/images/avatar/75b4f712b9a4860516a726646282d56a.jpg)
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. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/09/2009 16:40:06
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/09/2009 00:19:24
|
marcosalex
GUJ Expert
![[Avatar]](/images/avatar/0a8f8b227be2d04a675082cc9d51c127.jpg)
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/09/2009 01:15:44
|
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á
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/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/09/2009 12:44:58
|
formigaotts
Debugger
![[Avatar]](/images/avatar/12b5fc7904a4ed8e390a03143b2cc10b.png)
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)?
|
|
|
 |
|
|