设计模式之6大原则(1)-单一职责原则

     本人最近在做项目过程中,遇到了不少的问题,客户不断地提出了新的需求,有牵一发而动全身之势,着实让人抓狂啊。现在回过头来总结一下,争取降低模块之间的耦合,体现“高内聚  低耦合”的原则,在这里就抛砖引玉,引出设计模式的6大设计原则,该六大原则源自《设计模式之禅》一书,笔者刚毕业那会简直看不懂,现在看起来感觉说的对极了,好的,那就开始吧。

    单一职责原则,Single Responsibility Principle,一言以蔽之,“There should never be more than one reason for a class to change”.

     在这里我就直接上图了,我们一般的设计都是这样的:

 

而单一职责原则打破了常规的设计,它是这么做的:

用接口的分离将用户信息维护和业务逻辑分开,体现了面向接口编程的思想。每个接口只实现了各自职责。

IUserBiz userInfo = new UserInfo();
//我要赋值了,我就认为它是一个纯粹的BO
IUserBO userBO = (IUserBO)userInfo;
userBO.setPassword("abc");
//我要执行动作了,我就认为是一个业务逻辑类
IUserBiz userBiz = (IUserBiz)userInfo;
userBiz.deleteUser();

将修改对象属性信息的行为抽取出来为一个接口,将业务动作抽取出来为另一个接口,这样有什么好处呢?

1.类的复杂性降低,实现什么职责都有清晰明确的定义;
2.可读性提高,复杂性降低,那当然可读性提高了;
3.可维护性提高,那当然了,可读性提高,那当然更容易维护了;
4.变更引起的风险降低。

其中的奥妙,自己体会吧。。。

感谢《设计模式之禅》这本电子书,当然笔者还曾经在机械工业出版社项目中受赠一本纸质版本的。欢迎广大程序员(媛)拍砖...

敬请期待下一篇设计模式之6大原则(2)-里氏替换原则。

相关文章
相关标签/搜索