| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 21:19:45
|
adtve
What is classpath?
Membro desde: 02/11/2009 18:42:56
Mensagens: 6
Offline
|
E ai pessoal, blz?
Bom, eu estou com uma dúvida... estou precisando desenvolver um site que tenha tag cloud, aquelas tags que são associadas a alguma coisa e quanto mais associações esse tag tiver a tag é exibida com mais destaque. Eu quero usar os conceitos de DDD pra esse site e minha dúvida é de como implementar essa funcionalidade. Pra mim uma tag é um V.O com uma descrição e sua quantidade, mais como eu faria pra persistir a sua quantidade e como eu faria pra recuperar as tags elas sendo V.Os? Eu sei que posso transformar esse V.O em uma entidade e esta td resolvido mais acho q nesse caso eu estaria indo contra o que é lógico que é tornar a tag um V.O.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 21:27:46
|
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
|
Posso estar errado, mas não vejo problema em você ter um VO e uma tabela correspondente a ele. No caso, eu criaria a classe Tag contendo apenas um atributo contendo a própria tag, que seria também a chave primária da tabela.
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 23:39:02
|
adtve
What is classpath?
Membro desde: 02/11/2009 18:42:56
Mensagens: 6
Offline
|
Mais esquecendo o banco de dados. Eu tenho um objeto que ao meu ver é um V.O e pode ser associado a alguns artigos no meu site, por exemplo. Quero poder persistir esse objeto e carregar ele e o count dele pra poder criar meu tagcloud. Mais pra criar o meu tagcloud eu preciso poder carregar somente os objetos tag sem associação com nenhum outro objeto e neste caso eu teria de ter uma forma de carrega-lo no caso um repositório e repositórios só podem existir para aggregates o que não é o meu caso. Eu sei que posso tornar meu objeto tag um entity mais nao sei se este objeto é uma entity pra mim não é. Como resolvo isso?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 08:43:12
|
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
|
adtve wrote:(...) repositórios só podem existir para aggregates (...)
Onde você viu isso? E como você gerencia o ciclo de vida de uma entidade comum se não for através de um repositório?
Crie um repositório para a classe Tag e seja feliz.
|
Tarso Nunes Aires
Blog - http://cabritin.wordpress.com/
Delicious - http://delicious.com/tnaires
Twitter - @tnaires
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 09:12:39
|
mochuara
GUJ Master
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline
|
adtve wrote:Mais esquecendo o banco de dados. Eu tenho um objeto que ao meu ver é um V.O e pode ser associado a alguns artigos no meu site, por exemplo. Quero poder persistir esse objeto e carregar ele e o count dele pra poder criar meu tagcloud. Mais pra criar o meu tagcloud eu preciso poder carregar somente os objetos tag sem associação com nenhum outro objeto e neste caso eu teria de ter uma forma de carrega-lo no caso um repositório e repositórios só podem existir para aggregates o que não é o meu caso. Eu sei que posso tornar meu objeto tag um entity mais nao sei se este objeto é uma entity pra mim não é. Como resolvo isso?
Artigo parece ser seu aggregate. Use o repositorio de artigos para acessar as tags.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 10:29:45
|
esmiralha
JavaEvangelist
Membro desde: 19/07/2006 09:04:42
Mensagens: 402
Offline
|
tnaires wrote:
adtve wrote:(...) repositórios só podem existir para aggregates (...)
Onde você viu isso? E como você gerencia o ciclo de vida de uma entidade comum se não for através de um repositório?
Crie um repositório para a classe Tag e seja feliz.
Aires,
Ele leu isso no livro do Eric Evans. A idéia é que uma Entidade só pode ser acessada através de seu Aggregate Root e Aggregate Roots podem ser acessados através de Repositórios.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 10:45:13
|
x@ndy
Virtual Machine Man
![[Avatar]](/images/avatar/2a777aa4f210aa4cb06ee3bc682c19a0.png)
Membro desde: 07/01/2011 12:39:32
Mensagens: 554
Localização: Porto Alegre
Offline
|
Uma análise bem superficial com base no que você valou me passa que a tag tem uma identidade única o que a caracteriza como uma entidade e teria dentro referencia para os diversos posts que obviamente são entidades. O total de posts seria justamente um comportamento dela, contando o número de posts associados.
Já a nuvem pode ser objeto valor ou simplesmente um serviço, não consigo ter uma boa base para decidir com tão poucas informações. Lembrando que um objeto valor pode conter dentro dele referencias a entidades!
This message was edited 1 time. Last update was at 18/01/2011 12:13:46
|
Software e Tecnologia:http://tekhton.blogspot.com
"Um software desprovido de contexto na base do seu design é, na melhor das hipóteses, um mecanismo que realiza coisas úteis sem explicar suas ações" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 10:51:14
|
esmiralha
JavaEvangelist
Membro desde: 19/07/2006 09:04:42
Mensagens: 402
Offline
|
Eu acho que Tag é um Value Object. Qual a diferença entre duas tags chamadas "java"? Nenhuma, até onde posso ver. Se um objeto é definido exclusivamente por seus atributos, ele é um Value Object e não uma Entidade. Mas posso estar errado.
This message was edited 1 time. Last update was at 18/01/2011 11:53:45
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 11:02:16
|
mochuara
GUJ Master
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline
|
x@ndy wrote:Uma análise bem superficial com base no que você valou me passa que a tag tem uma identidade única o que a caracteriza como uma entidade e teria dentro referencia para os diversos posts que obviamente são entidades. O total de posts seria justamente um comportamento dela, contando o número de posts associados.
Já a nuvem pode ser objeto valor ou simplesmente um serviço, não consigo ter uma boa base para decidir com tão poucas informações. Lembrando que um objeto valor pode conter dentro dele uma entidade!
Tag poderia ser uma entidade se ele precisar manter um historico da evolução de cada tag registrado no sistema, o que não me parece ser o caso.
x@ndy wrote:Lembrando que um objeto valor pode conter dentro dele uma entidade!
Como um objeto valor poderia conter uma entidade e ainda assim permanecer imutavel?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 11:27:11
|
x@ndy
Virtual Machine Man
![[Avatar]](/images/avatar/2a777aa4f210aa4cb06ee3bc682c19a0.png)
Membro desde: 07/01/2011 12:39:32
Mensagens: 554
Localização: Porto Alegre
Offline
|
mochuara wrote:Tag poderia ser uma entidade se ele precisar manter um historico da evolução de cada tag registrado no sistema, o que não me parece ser o caso.
Como eu disse a análise é superficial. Eu entendi dessa maneira, antes de implementar teria que análisar e modelar melhor.
mochuara wrote:Como um objeto valor poderia conter uma entidade e ainda assim permanecer imutavel?
Ops, temos um problema de conceito ai. O objeto valor é imutável mas seus atributos não!!! Exemplo: Se considerarmos uma entidade pessoa e que ela tenha um endereço como objeto valor. O objeto endereço é imutável e é somente dessa pessoa correto né! Porém essa pessoa pode se mudar, ou seja, os atributos logradouro, número, bairro, etc da classe endereço teriam que ter novos valores! O objeto endereço deixaria de ser imutável então?! Não!! A pessoa receberia apenas um novo endereço!
"OBJETOS VALOR podem até se referir a ENTIDADES. Por exemplo, se eu pedir a um serviço de mapas online uma rota panorâmica de São Fransisco a Los Angeles, ele poderia deduzir um objeto Rota Ligando Los Angeles a São Fransisco através da Pacific Coast Highway. Esse objeto Rota seria um VALOR embora os três objetos a que ele se refere (duas cidades e uma estrada) sejam ENTIDADES" Eric Evans, Domain-Drive Design, página 94
|
Software e Tecnologia:http://tekhton.blogspot.com
"Um software desprovido de contexto na base do seu design é, na melhor das hipóteses, um mecanismo que realiza coisas úteis sem explicar suas ações" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 11:49:56
|
mochuara
GUJ Master
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline
|
x@ndy wrote:
mochuara wrote:Como um objeto valor poderia conter uma entidade e ainda assim permanecer imutavel?
Ops, temos um problema de conceito ai. O objeto valor é imutável mas seus atributos não!!! Exemplo: Se considerarmos uma entidade pessoa e que ela tenha um endereço como objeto valor. O objeto endereço é imutável e é somente dessa pessoa correto né! Porém essa pessoa pode se mudar, ou seja, os atributos logradouro, número, bairro, etc da classe endereço teriam que ter novos valores! O objeto endereço deixaria de ser imutável então?! Não!! A pessoa receberia apenas um novo endereço!
Não sei aonde quer chegar. Eu questionei objeto valor conter uma entidade, o seu exemplo é de uma entidade contendo um valor objeto.
O fato é, se um objeto é imutavel, ele pode conter no máximo um identificador, mas não pode conter a própria entidade, que é mutável.
x@ndy wrote:
"OBJETOS VALOR podem até se referir a ENTIDADES. Por exemplo, se eu pedir a um serviço de mapas online uma rota panorâmica de São Fransisco a Los Angeles, ele poderia deduzir um objeto Rota Ligando Los Angeles a São Fransisco através da Pacific Coast Highway. Esse objeto Rota seria um VALOR embora os três objetos a que ele se refere (duas cidades e uma estrada) sejam ENTIDADES" Eric Evans, Domain-Drive Design, página 94
Acho que a primeira sentença diz tudo né?
This message was edited 1 time. Last update was at 18/01/2011 11:50:53
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 11:52:46
|
mochuara
GUJ Master
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline
|
Verbo
re.fe.rir
1. mencionar, citar, fazer alusão
* ele se referiu a essa entidade como "uma nova força política"
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 11:56:34
|
esmiralha
JavaEvangelist
Membro desde: 19/07/2006 09:04:42
Mensagens: 402
Offline
|
Obviamente, o Xandy quis dizer "conter uma referência a uma Entidade" quando disse "conter uma Entidade".
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 12:06:21
|
x@ndy
Virtual Machine Man
![[Avatar]](/images/avatar/2a777aa4f210aa4cb06ee3bc682c19a0.png)
Membro desde: 07/01/2011 12:39:32
Mensagens: 554
Localização: Porto Alegre
Offline
|
esmiralha wrote:Obviamente, o Xandy quis dizer "conter uma referência a uma Entidade" quando disse "conter uma Entidade".
Sim!
No primeiro Post eu já coloquei isso
Uma análise bem superficial com base no que você valou me passa que a tag tem uma identidade única o que a caracteriza como uma entidade e teria dentro referencia para os diversos posts que obviamente são entidades. O total de posts seria justamente um comportamento dela, contando o número de posts associados.
This message was edited 1 time. Last update was at 18/01/2011 12:08:16
|
Software e Tecnologia:http://tekhton.blogspot.com
"Um software desprovido de contexto na base do seu design é, na melhor das hipóteses, um mecanismo que realiza coisas úteis sem explicar suas ações" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 12:18:22
|
x@ndy
Virtual Machine Man
![[Avatar]](/images/avatar/2a777aa4f210aa4cb06ee3bc682c19a0.png)
Membro desde: 07/01/2011 12:39:32
Mensagens: 554
Localização: Porto Alegre
Offline
|
mochuara wrote:
x@ndy wrote:
mochuara wrote:Como um objeto valor poderia conter uma entidade e ainda assim permanecer imutavel?
Ops, temos um problema de conceito ai. O objeto valor é imutável mas seus atributos não!!! Exemplo: Se considerarmos uma entidade pessoa e que ela tenha um endereço como objeto valor. O objeto endereço é imutável e é somente dessa pessoa correto né! Porém essa pessoa pode se mudar, ou seja, os atributos logradouro, número, bairro, etc da classe endereço teriam que ter novos valores! O objeto endereço deixaria de ser imutável então?! Não!! A pessoa receberia apenas um novo endereço!
Não sei aonde quer chegar. Eu questionei objeto valor conter uma entidade, o seu exemplo é de uma entidade contendo um valor objeto.
O fato é, se um objeto é imutavel, ele pode conter no máximo um identificador, mas não pode conter a própria entidade, que é mutável.
x@ndy wrote:
"OBJETOS VALOR podem até se referir a ENTIDADES. Por exemplo, se eu pedir a um serviço de mapas online uma rota panorâmica de São Fransisco a Los Angeles, ele poderia deduzir um objeto Rota Ligando Los Angeles a São Fransisco através da Pacific Coast Highway. Esse objeto Rota seria um VALOR embora os três objetos a que ele se refere (duas cidades e uma estrada) sejam ENTIDADES" Eric Evans, Domain-Drive Design, página 94
Acho que a primeira sentença diz tudo né?
Corrigi o trecho! Onde disse conter eu queria dizer conter uma referencia. Realmente não havia ficado claro. Imaginei que você estava questinando a imutabilidade dos atributos ou comportamento de um objeto valor, que podem mudar!
|
Software e Tecnologia:http://tekhton.blogspot.com
"Um software desprovido de contexto na base do seu design é, na melhor das hipóteses, um mecanismo que realiza coisas úteis sem explicar suas ações" |
|
|
 |
|
|