| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/08/2005 16:20:31
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5169
Localização: Sydney - Australia
Offline
|
LIPE wrote:
Como??
Pegue seu objeto, extraia um memento. Junte todos os mementos dos objetos que precisar passar pela rede, empacote num grande DTO e mande pela rede.
Na outra ponta, injete (palavrinha na moda ) o memento nos objetos do cliente, fazendo um update.
Na real é um jeito de evitar assemblers.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/08/2005 16:56:54
|
Filipe Sabella
Forum Spammer
Membro desde: 12/03/2003 11:25:57
Mensagens: 4641
Offline
|
Shoes: mas para que juntar os mementos num DTO e não os próprios objetos?
jdeveloper wrote:
Se eu armazenar os dados do usuário e as regras de negócio somente em uma classe essa classe vai ficar muito grande...o q eu acho ruim.
Quantos atributos suas classes costumam ter a ponto de "ficar muito grande" colocar mais uma meia dúzia de métodos de negócio? @.@
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/08/2005 17:01:52
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5169
Localização: Sydney - Australia
Offline
|
LIPE wrote:Shoes: mas para que juntar os mementos num DTO e não os próprios objetos?
Um memento deve ser menor (em recursos, memória, blablabla) que um objeto inteiro, e ele tem o mínimo necessário apra recompôr o estado.
Quando você tem problemas numa rede a ponto de realmente precisar de DTOs, passar o mínimo possível de bytes pelo fio é essencial.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/08/2005 17:12:07
|
jdeveloper
JavaChild
Membro desde: 04/08/2005 08:55:58
Mensagens: 132
Offline
|
LIPE wrote:
Quantos atributos suas classes costumam ter a ponto de "ficar muito grande" colocar mais uma meia dúzia de métodos de negócio? @.@
é uma classe de cadastro...então tem nome,idade,rg,cep,cpf,etc...
enfim...tem pelo menos 20 atributos...
20 atributos + 20 get + 20 set + os métodos de negócio....é bastante, não acha?
|
VENDO LIVROS
Simplesmente JAVA 2 R$35,00 - Enterprise JavaBeans Component Architecture R$25,00
JAVA Guia Prático para programadores R$25,00 - Descobrindo C# R$20,00 - Aprenda em 24 horas Adobe Photoshop 5.5 R$20,00 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/08/2005 17:39:03
|
Filipe Sabella
Forum Spammer
Membro desde: 12/03/2003 11:25:57
Mensagens: 4641
Offline
|
Shoes: entendi realmente boa idéia.
jdeveloper: ah ... getters e setters isso faz mal cara hehe
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/08/2005 17:39:31
|
fabio.patricio
Forum Spammer
Membro desde: 04/01/2004 02:51:33
Mensagens: 1512
Localização: Porto Alegre - RS
Offline
|
jdeveloper wrote:
LIPE wrote:
Quantos atributos suas classes costumam ter a ponto de "ficar muito grande" colocar mais uma meia dúzia de métodos de negócio? @.@
é uma classe de cadastro...então tem nome,idade,rg,cep,cpf,etc...
enfim...tem pelo menos 20 atributos...
20 atributos + 20 get + 20 set + os métodos de negócio....é bastante, não acha?
Nao.
Faca a dica do Lipe. Pegue esse teu objeto e serialize ele em disco. Pegue uma lista com pequena quantidade desse objeto dentro e serialize em disco tb, pegue uma lista com grande qunatidade de objetos deste dentro e serialize tb. Verifique o tamanho e faca sua avaliacao.
É a melhor maneira para ter uma boa conclusao do que é grande ou nao para trafegar na rede.
]['s
|
Fabio Patricio
http://blog.wansoft.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/08/2005 18:04:51
|
Filipe Sabella
Forum Spammer
Membro desde: 12/03/2003 11:25:57
Mensagens: 4641
Offline
|
fab, penso que ele se referiu ao tamanho do código.
fab
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/08/2005 19:26:02
|
jdeveloper
JavaChild
Membro desde: 04/08/2005 08:55:58
Mensagens: 132
Offline
|
LIPE wrote:fab, penso que ele se referiu ao tamanho do código.
fab 
é isso mesmo...o código fica muito grande...a manutenção fica mais difícil...
|
VENDO LIVROS
Simplesmente JAVA 2 R$35,00 - Enterprise JavaBeans Component Architecture R$25,00
JAVA Guia Prático para programadores R$25,00 - Descobrindo C# R$20,00 - Aprenda em 24 horas Adobe Photoshop 5.5 R$20,00 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/08/2005 09:35:32
|
Filipe Sabella
Forum Spammer
Membro desde: 12/03/2003 11:25:57
Mensagens: 4641
Offline
|
Para mim difícil é manter um relacionamento que só faz sentido para "o código não ficar muito grande" hehe
Na sua IDE não tem code-folding? Já tentou não usar getters e setters?
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/08/2005 09:42:49
|
jdeveloper
JavaChild
Membro desde: 04/08/2005 08:55:58
Mensagens: 132
Offline
|
LIPE wrote:
Na sua IDE não tem code-folding? Já tentou não usar getters e setters? 
não sei o q é code-folding atualmente eu to usando o netbeans 4.1
como é que eu vou preencher os meus atributos sem utilizar set? tiro o encapsulamento? melhor não,neh?
como é que eu vou pegar os dados para depois persistir sem usar get?
|
VENDO LIVROS
Simplesmente JAVA 2 R$35,00 - Enterprise JavaBeans Component Architecture R$25,00
JAVA Guia Prático para programadores R$25,00 - Descobrindo C# R$20,00 - Aprenda em 24 horas Adobe Photoshop 5.5 R$20,00 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/08/2005 09:53:59
|
mvcsouza
Thread.start()
Membro desde: 26/01/2005 11:29:34
Mensagens: 42
Offline
|
Cara, falando sério...
Não acho que o uso de DTOs deva ser condenado em ambientes não-distribuídos. É uma forma muito elegante de resolver o problema e usa o principio de separação de responsabilidades favorecendo o desacoplamento do código. Um problema que eu vejo em deixar o DTO de lado e criar uma classe que englobe tudo como no caso citado acima (Aluno), é o seguinte. Quando o DAO vai buscar alunos por classe por exemplo, você vai criar uma coleçào de alunos (classe Aluno com dados e métodos de negócio) e retornar para o view. Fica meio sem quê nem pra quê.
Além disso, o cara aí em cima lembro muito bem a facilidade em usar este padrão com os frameworks MVC que assumem este que DTO será o padrão usado na modelagem das classes de dados.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/08/2005 10:11:06
|
Rafael Nunes
Moderador
![[Avatar]](/images/avatar/d072677d210ac4c03ba046120f0802ec.png)
Membro desde: 09/10/2003 13:41:06
Mensagens: 2833
Localização: sao bernardo do campo
Offline
|
mvcsouza wrote:Não acho que o uso de DTOs deva ser condenado em ambientes não-distribuídos. É uma forma muito elegante de resolver o problema e usa o principio de separação de responsabilidades favorecendo o desacoplamento do código.
Discordo. O princípio de separação de responsabilidade alega que quem detém a informação é o responsável pela ação. Mas os DTOs não são detentores de informação nenhuma, é só um objeto repleto de atributos distintos.
mvcsouza wrote:
Um problema que eu vejo em deixar o DTO de lado e criar uma classe que englobe tudo como no caso citado acima (Aluno), é o seguinte. Quando o DAO vai buscar alunos por classe por exemplo, você vai criar uma coleçào de alunos (classe Aluno com dados e métodos de negócio) e retornar para o view. Fica meio sem quê nem pra quê.
Um Aluno englobar o que é inerente ao aluno não vejo como problema. Aliás, o que há de errado em se retornar um Aluno quando se solicita um Aluno?Ao menos para mim é estranho você retornar um objeto alienígena toda vez que solicitar uma entidade.
mvcsouza wrote:
Além disso, o cara aí em cima lembro muito bem a facilidade em usar este padrão com os frameworks MVC que assumem este que DTO será o padrão usado na modelagem das classes de dados.
Qual framework em específico assume que você utilizará um DTO?
|
------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."
http://www.yaw.com.br
http://twitter.com/rafanunes
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/08/2005 10:19:41
|
fabio.patricio
Forum Spammer
Membro desde: 04/01/2004 02:51:33
Mensagens: 1512
Localização: Porto Alegre - RS
Offline
|
jdeveloper wrote:
LIPE wrote:fab, penso que ele se referiu ao tamanho do código.
fab 
é isso mesmo...o código fica muito grande...a manutenção fica mais difícil...
Haaaa..nesse caso esquece os get e set burro sem necessidade.
E falando nisso, fazer em duas classes nao ficaria maior nao? Alem de ter um outro .java enchendo o saco.
]['s
|
Fabio Patricio
http://blog.wansoft.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/08/2005 10:21:53
|
Thiago Senna
Forum Spammer
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1511
Offline
|
Olá!
jdeveloper wrote: é uma classe de cadastro...então tem nome,idade,rg,cep,cpf,etc...
enfim...tem pelo menos 20 atributos...
20 atributos + 20 get + 20 set + os métodos de negócio....é bastante, não acha?
1 - Talvez vc possa melhor seu modelo. Por exemplo, quando houver muita coisa, talvez vc possa quebrar esta classe em outras responsabilidades. Por exemplo, vc poderia criar uma classe Endereco. Na classe endereco vc coloca o endereco, cidade, bairro, rua, cep e etc...
Tente identificar em suas classes que é possível melhorá-las, e desacoplar dados em comum em uma outra classe!
2 - Não vejo problemas caso haja 20 atributos e 40 getters e setters em sua classe. Se vc não tiver como fugir dos getters e setters, e só vc se organizar. Por exemplo:
Se organize, que cria algumas convenções como por exemplo, deixe todos os seus métodos de negócio no final da classe! Assim, se vc tiver que trabalhar em algum método de negócio, vc sabe que a única coisa a fazer é se mover para o final do arquivo e encontrar o seu método de negócio!
Com os recursos das IDE´s que temos hoje, como o eclipse por exemplo, segure o control e clique com o mouse em cima do método que ele já te leva para a implementação do método!
Não há pq separar uma classe contendo só os métodos de negócio!
Abraços!
Thiago Senna
This message was edited 1 time. Last update was at 10/08/2005 10:26:21
|
Thiago Senna
Meu bog http://www.trsenna.wordpress.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/08/2005 10:26:22
|
fabio.patricio
Forum Spammer
Membro desde: 04/01/2004 02:51:33
Mensagens: 1512
Localização: Porto Alegre - RS
Offline
|
mvcsouza wrote:...uma forma muito elegante de resolver o problema...
|
Fabio Patricio
http://blog.wansoft.com.br
 |
|
|
 |
|
|