单一职责原则

一:单一职责原则的由来

单一职责原则(Single Responsibility PrincipleSRP)是Bob大爷提出来的。

二:单一职责原则的定义

there should never be more than one reason for a class to change. (就一个类而言,应该有且只有一个原因引起他的变化)

:单一职责的例子 

例如打电话的例子

可以发现IPhone这个借口不只有一个职责,他包含两个职责:一个协议管理,一个数据传输。dial()hangup()两个方法实现的是协议管理,分别负责拨号和挂机;

chat()实现的是数据传输。可以发现协议接通的变化和数据传输(通话,上网...)都会引起类的变化。这时我们可以将其拆分成两个接口,每个接口职责分明。

:我的理解

在创建一个类或接口时要考虑引起这个类变化的原因,如果有多个要拆分。比如,类A有方法b,c(分别代表不同的职责),类B要用到类A的方法b,C要用到类A的方法c,如果类B要用Ab方法,而不需要c方法,他也会把c方法的引用全部添加进来,可能造成类B的性能减低,如果类C变化需要修改A,就会重新编译Ab方法,可能会造成不可预见的错误。不同的情形,职责和变化的原因都不同。接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。

 

 

posted @ 2013-03-11 20:18  小跳蚤  阅读(206)  评论(0编辑  收藏  举报