来自 DDD:解决软件核心的复杂性(第 268 页):
如果实现者具有用于计算的状态,那么实现者实际上是操作的参数,因此参数和返回值应该与实现者的类型相同。这样的操作在该类型的实例集下是关闭的。
a)我知道制作相同类型的参数、返回值和实现者会简化对操作的解释,但作者是否建议即使从概念上讲,参数和返回值不属于同一类型(比如ImplType
)更有意义作为实现者,我们仍然应该尝试强迫它们成为ImplType
,即使这意味着我们必须牺牲一点概念上的清晰性?
b) 我的想法是,如果参数和返回值的类型更有意义,那么我们已经将它们定义为这样,即使我们对操作闭包及其好处ImplType
一无所知。我们最初使它们具有不同类型的事实不应该表明在概念上它们不是类型更好吗?ImplType
谢谢