我知道在DDD中删除聚合根意味着立即删除聚合边界内的所有内容。
但是我注意到阅读模型(只读属性)在聚合中使用,如Lev Gorodinski在本博客中所述:http://gorodinski.com/blog/2012/04/25/read-models-as-a-tactical-pattern-in-domain-driven-design-ddd/
但是因为这些模型是聚合的一部分。那么,在删除或更新聚合的情况下,我们如何对待它们?
另外,我们可以使用它们来确保聚合的不变量/一致性吗?
我很感激有关它们的示例以及我们如何在不违反DDD原则的情况下在聚合中使用它们。
答案 0 :(得分:1)
但是因为这些模型是聚合的一部分。所以,我们如何对待它们 删除或更新我们的汇总的情况?
它们不是Aggregate的一部分(Aggregate是写入模型)。在最好的情况下,它们是一个或多个聚合的视图或投影。
另外,我们可以使用它们来确保聚合的不变量/一致性吗?
不,因为他们不是聚合的一部分。您可以使用它们进行验证,但最终一致的预聚合验证和非常特殊的情况下(如果您需要此验证是强一致的,那么您应该检查您的聚合边界,因为它们可能是错误的)
P.S。该博客文章指出,这些读取模型将由var http = require("http");
const url = "http://kitsu.io/api/edge/anime?=cowboy%20bebop";
http.get(url, res => {
res.setEncoding("utf8");
let body = "";
res.on("data", data => {
body += data;
});
res.on("end", () => {
body = JSON.parse(body);
//then do stuff here
});
});
或类似物使用,而不是由聚合物使用。