3.4 单一职责原则

“砸呀,你砸呀!”大鸟笑嘻嘻地看着小菜,“哼哼,我就知道你舍不得,不过你的手机的确是太没用,这么好的机遇,都没有录成,如果是摄像机,效果一定不会差,因为当时我们眼睛看得很清楚呀。这下说给谁,谁也不信呀!大多数时候,一件产品简单一些,职责单一一些,或许是更好的选择。这就和设计模式中的一大原则——单一职责的道理是一样的。”

“哦,听字面意思,单一职责原则,意思就是说,功能要单一?”

“哈,可以简单地这么理解,它的准确解释是,就一个类而言,应该仅有一个引起它变化的原因[ASD]。我们在做编程的时候,很自然地就会给一个类加各种各样的功能,比如我们写一个窗体应用程序,一般都会生成一个Form1这样的类,于是我们就把各种各样的代码,像某种商业运算的算法呀,像数据库访问的SQL语句呀什么的都写到这样的类当中,这就意味着,无论任何需求要来,你都需要更改这个窗体类,这其实是很糟糕的,维护麻烦,复用不可能,也缺乏灵活性。”

“是的,我写代码一般刚开始就是把所有的方法直接写在窗体类的代码当中的。”

单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因。