软件系统中的每个元素(方法,类,模块,服务)只完成自己职责内的事情,将其他的事交给别人去做。
错误理解:一个与该事情相关的事情
正确理解:一个职责是软件变化的一个原因
维护成本越低,越好。需求过来,模块改的越少越好,最好只改一个模块。
在今后不断变更的过程中,不断整理代码。将同一个变更原因的代码放在一起。修改的范围就变小了。
在每次变更的时候,在每次不断的变更的时候。
Ⅰ、问题:一旦商品信息发生变更,其他三个服务调用也要跟着变更,这是我们不像看到的。
Ⅱ、改造:这三部分需要变动的代码都是由于一个原因发生变化的代码。所以可以把这三块代码都放在商品服务里的一个类里,它的作用是维护商品信息变更引起的变化,用于统一维护。
Ⅲ、结果;其他三个模块只需要调用商品暴露的接口。
Ⅰ、发展:随着系统不断维护,用户提出各种算法关于折扣,折扣越来越复杂,但是折扣是支付所维护的。
Ⅱ、问题:折扣变化不应该是支付引起变化的原因。
Ⅲ、改造:把折扣单独拎出来,做一个服务,变更就在折扣服务去变更。