一、概述

单一职责原则的英文名称是Single Responsibility Principle,简称SRP。

二、定义

1 There should never be more than one reason for a class to change.

2 一个类,应当只有一个引起它变化的原因;即一个类应该只有一个职责。

3 单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。该原则由罗伯特·C·马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中给出的。马丁表示此原则是基于汤姆·狄马克(Tom DeMarco)和Meilir Page-Jones的著作中的内聚性原则发展出的。所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。

4 一个类应该只专注于做一件事和仅有一个引起变化的原因,这就是所谓的单一职责原则。该原则提出了对对象职责的一种理想期望,对象不应该承担太多职责,正如人不应该一心分为二用。唯有专注,才能保证对象的高内聚;唯有单一,才能保证对象的细粒度。

三、自我总结

1、单一职责原则降低类的复杂度,一个类或者一个方法只负责一项职责

2、提高类的可读性、可维护性

3、降低后续维护的复杂性

4、一般情况下要遵守单一职责原则,除非逻辑特别简单、类中方法特别少

5、 用“职责”或“变化原因”来衡量接口或类设计是否合理,结合项目和环境辨别。

四、例子

1 controller 只做参数校验和数据结果封装。

2 dao 层只做sql 拼装和查询

3 个人博客代码案例