美文网首页
单一职责原则

单一职责原则

作者: KUN叔 | 来源:发表于2017-10-07 13:19 被阅读14次

    单一职责原则(Single Responsibility Principle,SRP):

    是指一个类或者模块应该有且只有一个改变的原因。(高内聚,低耦合)

    原则分析

    一个类(或者大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且如果一个类承担的职责过多,就相当于将这些职责耦合在一起,当一个职责变化时,可能影响其他职责的运作。

    实践

    首先来看一下一个用户管理类UML

    UserInfo类图

    这个设计的问题是用户的属性和用户的行为没有分开,应该把用户的信息抽取成一个BO(Business Object, 业务对象),把行为抽取成一个Biz(Business Logic, 业务逻辑)按照这个思路对类图进行修正。

    UserInfo职责划分后的类图

    重新拆分成两个接口,IUserBO负责用户的属性,就是收集和反馈用户的属性信息;IUserBiz负责用户的行为,完成用户信息的维护和变更。

    优点:

    1、降低类的复杂性,类的职责清晰明确。比如数据职责和行为职责清晰明确。
    2、提高类的可读性和维护性。
    3、变更引起的风险减低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的类有影响,对其他接口无影响,这对系统的扩展性、维护性都有非常大的帮助。

    注意:

    单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否合理,但是“职责”和“变化原因”都是没有具体标准的,一个类到底要负责那些职责?这些职责怎么细化?细化后是否都要有一个接口或类?这些都需从实际的情况考虑。因项目而异,因环境而异。

    建议:

    接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。

    相关文章

      网友评论

          本文标题:单一职责原则

          本文链接:https://www.haomeiwen.com/subject/anzdyxtx.html