【设计模式】(四)-单一指责原则

前言

设计模式的六大原则已经学了五个了,本来想的学完这本书了再总结,怕时间长了会忘了,能理解多少先总结多少吧,以后学到新的东西再补充。

核心思想

单一指责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。
我的理解:之前在用VB编程的时候,很自然地就会给一个类加各种各样的功能,在一个Form1这样的类下面写各种各样的代码,像运算的算法,数据库访问的SQL语句什么的都写到这样的类当中,这就意味着,无论任何需求要来,你都需要更改这个窗体类,这其实是很糟糕的,维护麻烦,复用不可能,也缺乏灵活性。比如,一根尺子,既可以用来打学生手板,也可以用来丈量布匹。而在单一职责原理下,尺子的两个功能就是引起这个类变化的两个原因,就应该写成两个类。所以尽量让不同的功能分成不同的类。说白了就是一个类不能让它太累了。

优点

(1)降低类的复杂度;
(2)提高类的可读性,提高系统的可维护性;
(3)降低变更引起的风险(降低对其他功能的影响)。
需要说明的一点是单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则。

实例

一个手机可以有打电话和发短信这两个功能,我们可以写成两个类,让他们实现两个接口。

问题

单一职责”说起来容易,在实际设计中却很难把握。
什么才算是单一职责?
一个类处理一个用例,还是一个类处理用例中的一个流程?
说比如机房收费系统里的添加或删除用户,有添加,删除…。是把添加或删除用户作为一个类,还是添加,修改,删除都作为一个类

总结

目前只能理解这么多了,如果有什么不对的地方,还望指教。

猜你喜欢

转载自blog.csdn.net/qq_41306240/article/details/84928817