【大话设计模式】笔记——单一职责原则

来源:互联网 发布:mac北京哪里有专柜 编辑:程序博客网 时间:2024/04/29 01:42

《大话设计模式》之讲解单一职责原则,讲的通俗易懂,做笔记记录如下。以下主要文字均摘录自《大话设计模式》一书,感谢作者程杰!

“单一职责原则,意思就是说,功能要单一? 可以简单的这么理解,它的准确解释是:就一个类而言,应该仅有一个引起它变化的原因。我们在做编程的时候,很自然的会给一个类各种各样的功能,比如我们写一个窗体应用程序,一般都会生产一个form这样的类,于是我们把各种各样的代码,想商业运算呀,数据访问sql语句呀,都写到这样的类中,这就意味着,无论什么需求要来,你都要更改这个窗体类,这其实是很糟糕的,维护麻烦,复用不可能,也却反灵活性。


单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因。
“如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受意想不到的破坏。”

书中举了一个例子,俄罗斯方块,将游戏逻辑与界面显示分开,这样界面的变化就不会轻易影响到基本固定的游戏逻辑,也使得游戏逻辑可以被其他的界面复用。

“ 所谓游戏逻辑不过是数组的每一项值变化的问题,下落、旋转、等这些都是在做数组值的变化。而界面显示,不过是根据数组的数值进行描绘,或者根据键盘命令调用数组的相应方法进行改变。因此至少将程序分为两个类,一个游戏逻辑类,一个窗体类。当有一天界面变化时,不过是窗体类变化,和游戏逻辑无关,以此达到复用的目的。”