estive lendo o artigo sobre ddd na revista mas achei algumas coisas estranhas… Se o próprio Philip Calçado puder contribuir nas respostas seria otimo
1- o autor parece ter se confundido com agregação e composição…
aliás… só que no desenho ele colocou a notação de agregação… que coisa estranha!
2- entendo que o exemplo tem que ser simples, mas não errado… mas dizer que ‘quantidade’ é um atributo de Livro ficou bem estranho… detalhe: a quantidade que ele colocou se refere a quantidade de livros no acervo disponíveis para venda.
Agregação e composição não são sinonimos não?Em termos de programação.Acho que conceitualmente a diferença é que agregação é uma relação com uma entidade fraca e composição é cm uma entidade forte.
Não é isso não?
[quote=antoniopopete]Agregação e composição não são sinonimos não?Em termos de programação.Acho que conceitualmente a diferença é que agregação é uma relação com uma entidade fraca e composição é cm uma entidade forte.
Não é isso não?[/quote]
Associação e agregação é que são semelhantes na programação, tendo diferença apenas semântica (agregação denota relação todo-parte). A composição adiciona à agregação a responsabilidade do composto pelo ciclo de vida do objeto componente.
Sim, você está certo foi um erro, a notação do diagrama está correta. No exemplo a relação foi aliviada de composição para agregação.
Errado por quê? Dizer que uma modelagem está errada só faz sentido se você conhece o domínio. O exemplo em questão mostra o diálogo entre um especialista no domínio e o desenvolvedor, se o especialista vê as coisas desta forma um domínio seguindo os padrões de Domain-Driven Design vai fazê-lo também.
Não sei porque você achou estranho mas ‘livro’ ter uma ‘quantidade’, quando estamos falando de uma livraria não me parece incomum. Talvez ‘quantidadeEmEstoque’ fosse um nome melhor mas até então…
Acredito que não cabe a nós discutir se o dominio é certo ou não. O dominio da livraria é o dominio e ponto. O que foi adotado como “dito” pelo especialista é o veredicto (somente para um exemplo, pois sabemos que na verdade especialistas podem não ser tão especialistas assim, e temos que ajudar o cara a definir/descobrir os conceitos do dominio).
O que podemos fazer é pensar no melhor design para este dominio que nos foi exposto pelo especialista.
Agora, olhando o exemplo, quantidade ficou dificil de identificar e acredito que quantidadeEmEstoque seria mesmo melhor.
[quote=pcalcado] mas não ligue para edições, quando isso acontece eu trato como um novo livro.
[/quote][/quote]
Passei mais de 5 anos da minha vida desenvolvendo ERP para editoras e vou dar razão a você. A editora nem sempre pode recolher as edições antigas. Se a gente andar por aí pelas livrarias ainda encontrará muitas edições antigas.
Tem outro motivo também. Há casos em que a nova edição inclui um autor a mais ou sai um dos autores. É preciso considerar como outro livro para calcular os direitos autorais.
[]s
Luca (que não leu o artigo mas até 1996 trabalhava para editora)
Sacumé, a disponibilidade da Mundo.NET aqui eh no minimo limitada :mrgreen:
Aproveitando o gancho, essa do “eu trato como um novo livro” eh um exemplo bem classico do que acontece quando o desenvolvedor se acha o expert no dominio: sai um monte de solucao exageradamente complicada