Sim, eu já havia pensado nisso, nos DTOs, mas queria ter a opinião de quem já usa ou se deparou com o mesmo problema que o meu aqui agora...
[]'s 2010/9/8 Mário Júnior <juninho...@gmail.com> > Sim, trabalhoso, mas pensando de forma mais "politicamente correta" seria > isso mesmo! > > Pela conversa - e pela dúvida específica - me parece q vc está expondo > diretamente as entidades do seu negócio né? > No começo eu tb fazia isso ( > http://blog.digows.com/integrando-adobe-flex-blazeds-springframework-hibernate-uma-soluo-opensource-para-sistemas-web-parte-2-final/#comment-149.. > caramba, já tem +2 anos esse meu comentário =P) mas depois com o tempo me > conscientizei de q, de fato, não é uma boa prática expor entidades do > hibernate, justamente por me deparar com os principios básicos de > encapsulamento, code responsability, etc... então adotei o uso de VOs (q hj > já aprendi/acostumei a chamá-los de DTOs). São objetos "burros" q > simplesmente trafegam dados entre a view e os services, e daí nos services > eu transfiro os dados desses DTOs para as entidades, respeitando toda a > regra de negócio encapsulado nesses objetos. > > Enfim, como comentei antes, cada caso é um caso, e todos estão sujeitos a > longas análises... pra isso estamos ae :) > > > []s e boa sorte. > > > > Em 8 de setembro de 2010 19:07, Leonardo Ribeiro > <leojribe...@gmail.com>escreveu: > > Mário, >> >> É, realmente pensando bem não seria uma boa já que teria os casts... >> Você que já tem experiência em vários projetos java x flex, como resolve o >> problema do encapsulamento, tendo como exemplo o simples objeto NotaFiscal >> que tem como atributo Itens ? >> >> Sendo que em NotaFiscal não tem um método setItens(List itens) mas sim, >> por exemplo, addItem(Item item), porque a nota que deve controlar seus >> itens, fazendo se necessário alguma validação no item passado como parâmetro >> no método addItem(Item item)? >> >> Usa VO? Nesse caso teria que sempre que ler do BD que retorna objetos do >> domínio, fazer a criação do VO correspondente e enviar para o Flex e quando >> receber do Flex o VO fazer o inverso para poder trabalhar no server com o >> objeto de domínio correspondente... isso? Trabalhoso né? hehe >> >> Obrigado pela atenção >> >> >> 2010/9/8 Mário Júnior <juninho...@gmail.com> >> >> É possível sim. >>> Abra o source da classe JavaAdapter. Nessa classe vc tem o método >>> invoke(Message message). >>> >>> Dentro de message (faça um cast para RemotingMessage) vc tem tudo oq >>> precisa saber (qual classe de serviço será chamada e qual o objeto de >>> transporte será passado como argumento, assim como qual é o seu homonimo no >>> java, etc...). >>> >>> Agora, precisa ter um bom cuidado com isso, pois ao meu ver, vc estaria >>> envolvendo uma certa "regra de negócio" dentro desse adapter. Não digo que é >>> errado (não sou extremista) mas fique ciente q a medida q o seu projeto for >>> crescendo (e as regras aumentando) vc vai ter sempre q fazer "testes" no >>> objeto tranportado para saber se é um tipo X ou tipo Y para daí então >>> decidir qual método chamar (ou deixar de chamar), etc... >>> >>> Daí fica a pergunta: Não seria melhor fazer esses testes na sua camada de >>> serviços, em vez de fazer na camada de comunicação? >>> >>> ps: cada "caso" é um caso... :) >>> >>> >>> []s >>> >>> >>> >>> >>> >>> >>> >>> >>> Em 8 de setembro de 2010 15:31, Leonardo Ribeiro >>> <leojribe...@gmail.com>escreveu: >>> >>>> Pessoal, >>>> >>>> Alguém que já tenha mexido no fonte do BlazeDS sabe se é possível fazer >>>> com que ele, ao invés de fazer a "criação/injeção" dos valores do objeto >>>> as3 >>>> -> java via setters publicos usar reflection? >>>> >>>> Porque isso? Porque daí eu não precisaria de setID por exemplo, que >>>> seria a "pk" do objeto, uma vez que essa "pk" seria criada no construtor do >>>> objeto e não tem sentido alterar. Outro caso seria de no objeto java ter >>>> uma >>>> coleção como atributo (típico caso de nota fiscal ter uma coleção de itens) >>>> com isso não precisaria ter um setItens(List itens) no objeto >>>> NotaFiscal.java, e sim um addItem(Item item), mantendo o encapsulamento, >>>> pois quem deve inserir/gerir os itens da nota é a nota. >>>> >>>> >>>> -- >>>> []'s >>>> Leonardo >>>> >>>> Linux User #488650 >>>> Ubuntu User #27045 >>>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece >>>> >>>> -- >>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com >>>> Para sair da lista, envie um email em branco para >>>> flexdev-unsubscr...@googlegroups.com >>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >>> >>> >>> >>> >>> -- >>> Mario Junior >>> http://blog.mariojunior.com/ >>> @mariojunior >>> >>> -- >>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com >>> Para sair da lista, envie um email em branco para >>> flexdev-unsubscr...@googlegroups.com >>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >> >> >> >> >> -- >> []'s >> Leonardo >> >> Linux User #488650 >> Ubuntu User #27045 >> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece >> >> -- >> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com >> Para sair da lista, envie um email em branco para >> flexdev-unsubscr...@googlegroups.com >> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >> > > > > -- > Mario Junior > http://blog.mariojunior.com/ > @mariojunior > > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com > Para sair da lista, envie um email em branco para > flexdev-unsubscr...@googlegroups.com > Mais opções estão disponíveis em http://groups.google.com/group/flexdev > -- []'s Leonardo Linux User #488650 Ubuntu User #27045 Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev