面向对象的六大原则之 单一职责原则——SRP

SRP = Single Responsibility Principle
 
定义:就一个类而言,应该只有一个能引起他变化的原因。通俗的说,即一个类只负责一项职责。
 
作用:
1、减少了类之间的耦合
2、最简单最单纯的事情才是最容易控制,最有效
3、当需求变化时,只需要修改一个地方
4、 避免写臃肿的方法(俗称万能方法、大方法)
 
 
常见错误:
这里会计类有两个方法:计算工资方法和存储数据方法。这两个方法并不是一个职责,虽然看起来他们都是会计需要做的事情,但是引起他们变化的原因是不同的。
引起计算工资方法变化的原因可能是由于政策、公司变动等等因素。
引起存储数据方法变化的原因可能是 数据结构的变化。
所以这段代码是不符合单一职责原则的。
 
这个接口定义了 数据库连接和数据库操作。那么引起数据库连接变化和数据库操作变化的原因是不一样的。
引起数据库连接变化的原因是:更换了数据库,比如从sql server变成了oracle
引起数据库操作变化的原因是: 数据库表结构发生了变化
所以这是两个职责。 所以这段代码是不符合单一职责原则的。我们应该把它分为两个接口。
(0)

相关推荐

  • 设计模式-七大软件设计原则

    设计模式 参考资料 图解设计模式 大话设计模式 设计模式之禅 github我见过最好的设计模式 http://c.biancheng.net/view/1326.html 基本原则 开闭原则 在设计的 ...

  • 设计模式-6大设计原则

    单一职责原则(SRP:Single Responsibility Principle) 定义:应该有且仅有一个原因引起类的变更. 优点: 类的复杂性降低: 可读性提高: 可维护性提高: 变更引起的风险 ...

  • UI设计模式优漫动游教育的七大基本原则

     一.单一责任原则.   单点职责原则表达了模块组件的功能相关性.对于软件更改来说,类的更改只有一个原因:一般而言,一个类只负责一个职责.   (1)SRP原理简单直观,但在实际编码中难以正确使用,需 ...

  • 52页完整版,定岗定编方法与操作指南,提升组织效率必备手册

    引子:红楼梦宁国府的定岗定编 为什么要定岗定编? 什么是定岗定编? 定岗定编的作用:结构精简.人员合理.高效运作 定岗定编的目的:实现"人.岗.事"三者的合理匹配 定岗定编的原则 ...

  • 设计模式六大原则:单一职责原则

    目录: 设计模式六大原则:单一职责原则 设计模式六大原则:接口隔离原则 设计模式六大原则:依赖倒置原则 设计模式六大原则:里氏替换原则 设计模式六大原则:迪米特法则 设计模式六大原则:开闭原则 单一职 ...

  • 设计模式的七大原则(1) --单一职责原则

    前言 最近工作中备受打击,之前设计的很多程序都被老大否决,需要重构,让我好好看看设计模式.之前对这一块内容的确不怎么重视,感觉枯燥无聊又派不上用场.后来沉下心来研究了一番... 我靠,原来如此,之前写 ...

  • 六大设计原则(一)SRP单一职责原则

    单一职责原则SRP(Single reponsibility principle) BO(Business Object):业务对象 Biz(Business Logic):业务逻辑 SRP最简单的例 ...

  • 面向对象的六大原则之 接口隔离原则——ISP

    ISP = Interface Segregation Principle   ISP的定义如下: 1.客户端不应该依赖他不需要的接口 2.一个类对另外一个类的依赖性应该是建立在最小的接口上 3.不应 ...

  • 2021年高考命题的六大要求和十项原则

    导读 根据<课程标准>.<中国高考评价体系>以及近期教育部<关于做好2021年普通高校招生工作的通知>等文件精神,本文汇总了有关2021年高考命题的六大要求和十项原 ...

  • 设计模式六大原则:开闭原则

    开闭原则(Open Close Principle): Software entities (classes, modules, functions, etc.) should be open for ...

  • 多项独立权利要求的单一性原则的理解

    一.基本概念 [单一性]是指一件发明或者实用新型专利申请应当限于一项发明或者实用新型.属于一个总的发明构思的两项以上发明或者实用新型,可以作为一件申请提出.(专利法31.1) 一个总的发明构思,是指两 ...

  • 钟南山养生的六大秘诀之两条原则

    钟南山养生的六大秘诀的前半部分是四大规律, 队长已经讲完, 那么后半部分是两条原则. 两条原则包括疾病早防治和绿色环境. 疾病早防早治 我们的身体偶尔会有不舒服的时候, 只要身体感觉到不舒服了, 就应 ...

  • 最简单直接地理解Java软件设计原则之里氏替换原则

    理论性知识 定义 里氏替换原则,Liskov Substitution principle(LSP). 抽象定义是下面这样的 如果对每一个类型为T1的对象O1,都有类型为T2的对象O2,使得以T1定义 ...