Domain driven design 对业务关闭的一些混淆

Domain driven design 对业务关闭的一些混淆,domain-driven-design,Domain Driven Design,来自DDD:解决软件核心的复杂性第268页: 如果实现者具有计算中使用的状态,则 实现者实际上是操作的参数,因此 参数和返回值的类型应与 实施者。这样的操作在 那种 a我理解,将参数、返回值和实现者设置为相同的类型将简化对操作的解释,但作者是否建议,即使从概念上讲,参数和返回值不属于同一类型(例如,ImplType作为实现者)更有意义,我们还是应该尝试将它们设置为ImplType,即使这意味着我们必须牺牲一点概念上的清晰性 b我的想法是,如果参数和返回值的类型为ImplType更有意义,那么我们

来自DDD:解决软件核心的复杂性第268页:

如果实现者具有计算中使用的状态,则 实现者实际上是操作的参数,因此 参数和返回值的类型应与 实施者。这样的操作在 那种

a我理解,将参数、返回值和实现者设置为相同的类型将简化对操作的解释,但作者是否建议,即使从概念上讲,参数和返回值不属于同一类型(例如,ImplType作为实现者)更有意义,我们还是应该尝试将它们设置为ImplType,即使这意味着我们必须牺牲一点概念上的清晰性

b我的想法是,如果参数和返回值的类型为ImplType更有意义,那么我们已经将它们定义为ImplType,即使我们不知道操作的闭包及其好处。我们最初将它们划分为不同类型的事实不应该表明,从概念上讲,它们不是impl类型更好吗


谢谢

我认为关于关闭运营的一个关键引语是:

在合适的地方,定义一个返回类型与相同的操作 其参数的类型

其思想是,操作的结束对行为建立了一些理想的限制,但应该在合适的地方应用。关于将状态视为操作参数的实现者的声明基于OOP的实现方式。在幕后,运行时将初始化的此参数传递给所有类方法。这样,实现操作的每个方法都可以被视为一个静态方法,它接受实现类型作为第一个参数。以这种方式查看操作会试图使其所有内容都显式化,从而减少依赖性


闭包运算的概念是从数学、抽象代数和群论中特别借用的。在数学中,作为一个纯粹的声明性模型,这一原则在企业开发中的应用远比它在企业开发中的应用多得多,但是我们仍然可以从中获得一些好处。

我认为关于操作结束的一个关键引用是:

在合适的地方,定义一个返回类型与相同的操作 其参数的类型

其思想是,操作的结束对行为建立了一些理想的限制,但应该在合适的地方应用。关于将状态视为操作参数的实现者的声明基于OOP的实现方式。在幕后,运行时将初始化的此参数传递给所有类方法。这样,实现操作的每个方法都可以被视为一个静态方法,它接受实现类型作为第一个参数。以这种方式查看操作会试图使其所有内容都显式化,从而减少依赖性


闭包运算的概念是从数学、抽象代数和群论中特别借用的。在数学中,作为一个纯粹的声明性模型,这个原则在企业开发中的应用远比在企业开发中的应用多得多,但是我们仍然可以从中获得一些好处。

非常好的答案。谢谢你,回答得很好。非常感谢。