| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/03/2009 17:14:19
|
hlegius
JavaChild
![[Avatar]](/images/avatar/0f20c77d6afb02422603acb0329b5a41.jpeg)
Membro desde: 07/05/2006 14:29:25
Mensagens: 126
Localização: Guarulhos, SP
Offline
|
Salve !
Estou travado em uma regra aqui.
Tenho lá: Pedido, cliente e endereço. Esse último é agregado de cliente.
Quando cria-se um pedido, os dados sobre o endereço precisa ser mantido, pois o cara pode mudá-lo, removê-lo e etc..
Aí vem o problema: Hoje para carregar os endereços de um cliente XPTO eu uso o lazy loading. Algo como:
Só, que depois de consumado o pedido, ele precisará buscar o Endereço em outra "tabela". Isso é tranquilo, poderia ser baseado em status e tal., mas neste caso eu não tenho (ao meu ver) algo para diferenciar o "pega os endereços atuais" do "pega o endereço desse pedido".
Pensei no seguinte: Cliente.getEnderecoDo(int pedido_id)
Mas acho que isso deixaria meu Cliente "sabendo demais", ou não ?
--- Editado ---
Pensando com meus botões aqui, me veio a mente que eu poderia talvez no Pedido.getCliente() pedir ao Repositório do Cliente trazer já o endereço e injetar no cliente. Algo como:
De primeiro momento isso parece fazer sentido. Pelo menos para mim...
------
Alguma sugestão ?
This message was edited 1 time. Last update was at 05/03/2009 17:21:53
|
http://programe.me
Zend Certified Engineer
ArchLinux - A simple lightweight Linux Distribution |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/03/2009 23:01:31
|
ffranceschi
JavaChild
![[Avatar]](/images/avatar/c80bfa00454a7564c07c0559808294fa.jpg)
Membro desde: 23/08/2006 11:07:21
Mensagens: 130
Offline
|
acha que pedido.getEndereco() retornando um Endereço não seria melhor, já que seu pedido que tem um endereço nele?
Abraços
|
Fernando Franceschi
Blog - http://ffranceschi.wordpress.com/
Twitter - http://twitter.com/ffranceschi1 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2009 05:47:59
|
hlegius
JavaChild
![[Avatar]](/images/avatar/0f20c77d6afb02422603acb0329b5a41.jpeg)
Membro desde: 07/05/2006 14:29:25
Mensagens: 126
Localização: Guarulhos, SP
Offline
|
ffranceschi wrote:acha que pedido.getEndereco() retornando um Endereço não seria melhor, já que seu pedido que tem um endereço nele?
Abraços
Opa,
Mas acho que isso quebraria o agregado Cliente -> Endereço, não ?
Abraços,
|
http://programe.me
Zend Certified Engineer
ArchLinux - A simple lightweight Linux Distribution |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2009 07:41:08
|
rlazoti
Virtual Machine Man
![[Avatar]](/images/avatar/0dee07203418a72583e5dd79d66965ed.png)
Membro desde: 09/04/2008 11:02:51
Mensagens: 569
Localização: Sao Paulo / SP
Offline
|
hlegius,
Não vejo problema na forma que você comentou, mas IMHO você precisa ficar atento na forma de você citou pois nesta classe de pedidos seu cliente retorna o endereco de um local persistido (Endereco do pedido), e em outras classes retornara o endereco de outro local (Endereco do cliente) e isso pode acabar gerando uma confusão no futuro (Principalmente se ocorrer do endereco do cliente ser alterado e/ou excluido).
Talvez seria interessante o analisar se a dica do ffranceschi é viavel no seu cenario.
|
Rodrigo Lazoti
blog: http://www.rodrigolazoti.com.br
twitter: http://twitter.com/rodrigolazoti |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2009 08:58:22
|
ffranceschi
JavaChild
![[Avatar]](/images/avatar/c80bfa00454a7564c07c0559808294fa.jpg)
Membro desde: 23/08/2006 11:07:21
Mensagens: 130
Offline
|
hlegius wrote:
Opa,
Mas acho que isso quebraria o agregado Cliente -> Endereço, não ?
Abraços,
Sim, mas pensando em negócio agora, o Endereço do Cliente é diferente do Endereço do Pedido certo?
Eu sou sempre a favor de manter o design mais simples e intuitivo, isso sim faz toda a diferença...
|
Fernando Franceschi
Blog - http://ffranceschi.wordpress.com/
Twitter - http://twitter.com/ffranceschi1 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2009 09:14:15
|
hlegius
JavaChild
![[Avatar]](/images/avatar/0f20c77d6afb02422603acb0329b5a41.jpeg)
Membro desde: 07/05/2006 14:29:25
Mensagens: 126
Localização: Guarulhos, SP
Offline
|
ffranceschi wrote:
hlegius wrote:
Opa,
Mas acho que isso quebraria o agregado Cliente -> Endereço, não ?
Abraços,
Sim, mas pensando em negócio agora, o Endereço do Cliente é diferente do Endereço do Pedido certo?
Eu sou sempre a favor de manter o design mais simples e intuitivo, isso sim faz toda a diferença...
Realmente. Entendi seu ponto de vista agora. O endereço continuará sendo acessado por um root (ora Cliente ora Pedido). Seria um aggregado combo hehe =)
Eu foquei "cegamente" no agregado Cliente -> Endereço e não me toquei que pode haver outro agregado (Pedido -> Endereco).
@ffranceschi obrigado pelo toque !
riazoti wrote:Não vejo problema na forma que você comentou, mas IMHO você precisa ficar atento na forma de você citou pois nesta classe de pedidos seu cliente retorna o endereco de um local persistido (Endereco do pedido), e em outras classes retornara o endereco de outro local (Endereco do cliente) e isso pode acabar gerando uma confusão no futuro (Principalmente se ocorrer do endereco do cliente ser alterado e/ou excluido).
A princípio não ficou *tão* confuso. O pedido solicitará endereço de um lugar e o cliente de outro. Mas analisando agora com as dicas de vocês realmente fica *bem* mais simples o relacionamento direto de Pedido -> Endereço e outro entre Cliente e Endereço.
valeu rapaziada
|
http://programe.me
Zend Certified Engineer
ArchLinux - A simple lightweight Linux Distribution |
|
|
 |
|
|