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

Responder a