领域驱动设计之-柔性设计

柔性设计就是为了使项目能够随着开发工作的进行快速前进,而不会由于他自己的老化而停滞不前,设计必须要让人们乐于使用,而且易于做出修改。

 

INTENTION-REVEALLING INTERFACES(释义接口)

类型名称,方法名称,参数名称组合在一起,共同形成了一个INTENTION-REVEALLING INTERFACES(释义接口)。

因此,我们再命名类和操作时要描述他们的效果和目的,而不是表露他们是通过何种方式达到这个目的的,这样可以使客户开发人员不必去理解内部的细节。在创建一个行为之前先为它编写一个测试,这样可以促使你站在客户开发人员的角度去思考它。

 

SIDE-EFFECT-FREE FUNCTION

 

操作可以分为两个大类:命令和查询。

查询:从系统获取信息,查询方式可能只是简单的访问变量的中的数据,也可能是用这些数据进行计算。

命令(也称为修改器):就是修改系统的操作(举一个简单例子,修改变量),

副作用:任何对系统状态产生影响都是副作用

函数:返回结果而不产生副作用的操作称为函数,一个函数可以多次调用,每次调用都返回相同的值。

 

尽可能把程序的逻辑放到函数中,因为函数只返回结果而不产生副作用,严格的把命令(引起明显状态改变的方法)隔离到不返回领域信息的、非常简单的操作中。当发现一个非常适合承担复杂逻辑职责概念时,就可以把这个复杂的逻辑移到VALUE OBJECT中。这样可以进一步控制副作用。

 

 

INTENTION-REVEALLING INTERFACES能够清楚的表明意图,SIDE-EFFECT-FREE FUNCTION能更准确的预测结果,因此封装和抽象更加安全。

 

 

 

你可能感兴趣的:(设计)