本人最近在做项目过程中,遇到了不少的问题,客户不断地提出了新的需求,有牵一发而动全身之势,着实让人抓狂啊。现在回过头来总结一下,争取降低模块之间的耦合,体现“高内聚 低耦合”的原则,在这里就抛砖引玉,引出设计模式的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)-里氏替换原则。
原文链接:https://www.f2er.com/javaschema/285693.html