В книге Вона Вернона «Внедрение доменного дизайна» вы можете найти целую главу о том, как определить агрегаты, и некоторые практические правила, которые вы можете применить.
Одним из них является попыткаДержите ваши агрегаты как можно меньше. В вашем случае я бы предпочел избегать наличия списка объектов Post внутри вашего объекта Blog. Представьте, что ваш объект Blog имеет атрибут name
, и вы просто хотите изменить его: когда вы извлечете этот объект из базы данных, если он будет содержать все сообщения, вы также получите их, создав ненужное соединение для использования. Если вы работаете, и это снизит производительность.
С точки зрения дизайна, вероятно, что Блог не определен в его Посте, так что на самом деле они вам не нужны. Агрегат должен нести ответственность за все свои инвариантные правила (правила бизнес-логики) и не более.
Мой совет - просто сохранять его как можно более простым и всегда сосредотачиваться на твердых принципах.
Удачи!