在 DDD 中,任何不是实体或值对象的类都应该是服务吗?
例如,在库中,一些类被命名FileReader(读取 File 对象),Cache由MemcachedCacheor实现的接口FileCache,XXXManager,...
我理解在 DDD 之外,您可以随意命名您的课程。
但是在 DDD(以及相同的示例)中,我应该将我的类命名为、 、FileReadingService、等CacheService实现吗?FileCacheServiceXXXService
在 DDD 中,任何不是实体或值对象的类都应该是服务吗?
例如,在库中,一些类被命名FileReader(读取 File 对象),Cache由MemcachedCacheor实现的接口FileCache,XXXManager,...
我理解在 DDD 之外,您可以随意命名您的课程。
但是在 DDD(以及相同的示例)中,我应该将我的类命名为、 、FileReadingService、等CacheService实现吗?FileCacheServiceXXXService
我认为这确实只与您的项目命名标准相关。DDD 没有规定那种详细程度。
我唯一的建议是确保将类似的东西FileReader与您的域明确隔离开来。可能在您的基础设施库中,
DDD 中还有其他类型的对象,尽管它们的作用比实体、服务或值对象更多。诸如存储库和工厂之类的东西浮现在脑海中。但一般来说,诸如物理对象或问题描述中的名词之类的“真实”对象应该属于这些类别之一。
好吧,我会说是的。即使您可能会遇到其他类型的对象,但毕竟这些对象可能会变成 VALUE 对象。我是这样想的:如果它不是需要存储的对象或由聚合根管理的对象,那么它必须是管理它们的服务。