DDD e Aggregates [RESOLVIDO]

Olá,
Sobre Domain-Driven Design, gostaria de saber se um Aggregate pode possuir membros (não-raíz) que sejam a raíz de outros aggregates… ou mesmo membros de outros aggregates…

Ex.:

Site [raíz]
Area
Cidade
Estado

Estado [raíz]
Cidade
Rua

Deu pra entender?? :?:

Não.

Uma classe de um agregate conhece apenas classes que estejam dentro do agregate. Só o raiz conhece outros objetos externos, e ainda assim não pode conhecer os membros das agragações externas.

Pense que os membros do agregate são “private”. Assim ajuda a iluminar o que pode e o que não pode.

Certo… Então podemos dizer que, em geral, os agregates não possuem uma quantidade muito grande de entidades (ou VOs) em sua composição (em geral)? Correto?
Aproveitando, ainda sobre DDD… Os VOs podem ser representações de uma tabela no banco de dados? Exemplo, a tabela/Objeto (com chave-composta): coordenada(x,y,mapa_id) pode ser um VO?

Muito obrigado pela ajuda!!!

Olá

Na maioria dos casos, você terá no máximo 3 ou 4 classes agregadas, acho.

Na maioria dos casos os VOs terão uma tabela correspondente, mas não é regra. É difícil analisar seu exemplo da coordenada pois não conhecemos o contexto de utilização, mas tô achando estranho esse mapa_id aí…

Entendi, esclareceu bem minha dúvida, quer dizer que não é porque o objeto não é uma entidade que ele não possua um id também, né? O exemplo da coordenada foi meio vago mesmo… mas eu entendi que depende do contexto.

Valeu!

Desculpe, este tópico já está marcado como resolvido, mas eu achei uma discussão interessante aqui:
http://www.udidahan.com/2009/06/29/dont-create-aggregate-roots/#comment-36468

Tenho me interessado por DDD ultimamente e, pelo que vi, muitos caras de .Net (mais especificamente de Alt.Net) têm publicado coisas bem interessantes sobre DDD (acho que isso já foi constatado aqui neste fórum, em algum outro post):

Valeu!

Bacana! Valeu colega!