在对典型的聊天应用程序进行建模(无限聊天)时,是否应将每条消息视为一个聚合实例?
聚集应该保持很小,并且不能想到包含用户消息的其他一些体面和小的候选对象。但是,与此同时,我只是想知道我是否应该对如此小的系统对象使用聚合概念。
答案 0 :(得分:1)
是否应将每条消息视为一个聚合实例?
这是一个很好的问题,但是由于我们不了解您的业务而被问到了错误的一群人:)
聚集是事务性边界的同义词 一致性。 [...]正确设计的骨料是一种,可以 以业务需要修改的方式进行修改,同时提供 业务规则在单个交易中必须保持一致。 [...] 聚合主要涉及一致性边界及其设计 应该不受创建对象图的控制。 [...]〜实施域驱动设计,Vaughn Vernon
聚合主要是关于业务规则中事务一致性的。您应该询问业务有关单个聊天消息的规则。在典型的聊天应用程序中可能没有,但是您必须要问生意。
我可以想象在最简单的聊天应用程序中,我的聊天消息更像是一个价值对象。否则我将甚至不使用DDD ,如Tseng所述。我想不出我需要的任何业务规则,它肯定是不可变的。