单一职责原则,核心思想:一个类最好只做一件事情,只有一个引起她变化的原因。
就是分工合作的意思。一个人只做一种事情,比如设计师负责设计页面,做出来PS图,美工负责把PS图片,切成HTML代码的形式,加上css效果、flash动画等,程序员负责加代码。而程序员这里又可以细分一下,有的负责UI,有的负责业务逻辑,有的负责数据操作,对了还有架构师、技术经理、项目经理等。最后还要有专门负责测试的人员。
其实上面有点扯淡的味道,往往小公司是做不到这些的。还是说程序吧,做到单一的最大的好处就是可以很灵活的组合。假设第一个步骤有两种选项,第二个步骤有三种选择,那么这两个组合起来就会有六种组合方式,可能就会达到六种不同的效果如果还有一个步骤,这个步骤有三种选择,那么合起来就有十八中组合方式了。而选项加起来只有八种。这就是用最少的代码,干最多的活吧。
树上举的例子是一个添加数据的例子,反面教材是把权限判断和功能实现放在了一起,正面教材是使用一个接口把功能实现抽象出来,权限判断就只写一份,先做判断,然后利用接口来调用具体的添加、修改数据的操作。
好像现在大家都是这么做数据操作的吗?我的和这个是很不一样的。呵呵。有空再说一下。
单一原则,直接想到了我的分页控件——QuickPager。表面上看是严重的违反了这个原则,但是分页控件也不是由一个类组成的呀,细看一下内部的类,每一个功能都由一个(一组)专门的类来实现的,好像这么看就是符合了吧。