设计模式:单一职责原则
1、单一职责原则的概念
Single Responsibility Principle,SRP:
一个类被改变的原因不能超过一个,也就是说,一个类只有一个职责,如果职责过多,代码就会臃肿,可读性更差,也更难以维护。其实上单一职责原则和接口隔离原则有一定的关系,接口隔离以后,职责就单一了,实现这个接口的类的职责自然也就单一了。但是接口隔离关注的是抽象层,单一职责关注的是两者兼而有之,偏重于实现。
2、为什么要遵守单一职责原则
1、提高类的可维护性和可读写性
一个类的职责少了,复杂度降低了,代码就少了,可读性也就好了,可维护性自然就高了。
2、提高系统的可维护性
系统是由类组成的,每个类的可维护性高,相对来讲整个系统的可维护性就高。当然,前提是系统的架构没有问题。
3、降低变更的风险
一个类的职责越多,变更的可能性就更大,变更带来的风险也就越大,
3、如何遵守单一职责原则
合理的职责分解
相同的职责放到一起,不同的职责分解到不同的接口和实现中去,这个是最容易也是最难运用的原则,关键还是要从业务出发,从需求出发,识别出同一种类型的职责。举个例子:人的行为分析,包括了生理、生活和工作等行为的分析,生理行为包括吃、跑、睡等行为,生活行为包括穿衣等行为,工作行为包括上下班,开会等行为,如下图所示:
图1 人类行为分析示例
人类的行为分成了三个接口:生理行为接口、工作行为接口和生活行为接口,以及三个实现类。如果都用一个实现类来承担这三个接口的职责,就会导致代码臃肿,不易维护,如果以后再加上其他行为,例如学习行为接口,将会产生变更风险(这里还用到了组合模式,以后会详细说明)。
四、最佳实践
在实际工作中,有一个经常会用到的设计模式,DAO模式,又叫数据访问对象,里面定义了数据库中表的增、删、改、查操作,按照单一职责原则,为什么不把增、删、改、查分别定义成四种接口?这是因为数据库的表操作,基本上就是这四种类型,不可能变化,所以没有必要分开定义,反而经常变化的是数据库的表结构,表结构一变,这四种操作都要跟着变。所以通常我们会针对一张表实现一个DAO,一张表就代表一种类型的职责。
设计模式:单一职责原则相关推荐
- 设计模式-单一职责原则
设计模式-单一职责原则 单一职责原则使用的是创建型模式 创建型模式 创建型模式对类进行抽象 重点,创建型模式能够将对象的创建和和对象的使用分离.即使用创建型模式能够使得对象的创建,对象的使用分离.重点 ...
- 寂然解读设计模式 - 单一职责原则
I walk very slowly, but I never walk backwards 设计模式 - 单一职责原则 寂然 大家好,我是寂然,本节课呢,我来给大家介绍设计模式原则之单一职责原则 ...
- 设计模式-单一职责原则-实践运用
单一职责原则-概念 1.单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小. 2.单一职责原则定义如下: 单一职责原则(Single Responsibility Principle, S ...
- Java设计模式-单一职责原则
单一职责原则 [Single Responsibility Principle] 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责 ...
- 前端中会用到的设计模式之单一职责原则
1:设计模式应用不应用,取决于对现在和未来判断后的取舍.没必要用尽量不用! 2.设计模式的目的是 减少复杂度(一个函数中包含的功能个数), 降低耦合度(一个对象与其他对象的关系个数).耦合度不能为0 ...
- 学习设计模式 - 六大基本原则之单一职责原则
设计模式总共有六大基本原则,统称为SOLID (稳定)原则,分别是S-单一职责原则(Single Responsibility Principle), O-开闭原则(Open closed Princ ...
- 设计模式原则--单一职责原则
单一职责原则(SRP) 定义:就一个类而言,应该仅有一个引起它变化的原因 场景: 一个公司有3类员工,分别是 主管,程序员,销售 代码: using System; using System.Coll ...
- 北风设计模式课程---单一职责原则
北风设计模式课程---单一职责原则 一.总结 一句话总结: 视频教程网上一定能找到做好笔记的博客,很大几率都不需要自己做笔记.比如北风设计模式课程,https://www.cnblogs.com/xi ...
- 设计模式 之 设计的 六大原则(1)单一职责原则
由于这些原则性东西 属于概念东西,就不具体以代码描述了.以下是摘自网上和自己的一些理解 首先了解一些 面向对象的特性: 面向对象 有 三大基本特征:封装 ,继承, 多态. 封装: 也就是把客观事物封装 ...
- 设计模式原则篇:(1)单一职责原则--Single Responsibility Principle
上篇文章提及到设计模式中应遵循的设计原则,并且列出了设计模式中应当遵循的六大原则. 次篇文章主要讨论单一职责原则. 单一职责原则(SRP): 不要存在多于一个导致类变更的原因.简单的讲,就是一个类或接 ...
最新文章
- SAP SD基础知识之SD常见流程概述
- C++中如何访问全局变量和全局函数
- [C#] 查标准正态分布表
- python之threading模块
- ABAP中将字符格式的金额转换为数值的函数
- innodb_flush_log_at_trx_commit配置
- 软件需求分析文档模板_小议管理软件需求分析
- 洛谷 P3183 [HAOI2016]食物链
- Java语言基础(4)
- android wchar t 中文,Android没有真正的wchar_t吗?
- android网易云桌面歌词,网易云怎么设置桌面歌词?
- Android OAID 获取 基于MSA oaid_sdk_1.0.25.zip
- UG装配体,打开后总显示卸载的一种可行解决办法
- win7计算机自动关机设置在哪里设置方法,win7电脑自动关机怎么设置_win7电脑自动关机怎么设置在哪-win7之家...
- Centos8 更换DNF源
- 区块链以及蚂蚁开放联盟链初探索
- 点是否在三角形内——C++实现
- 【JVM技术专题】 深入学习Parallel Scavenge回收器「 原理篇」
- 一元二次方程虚根求法java_请问怎么用C语言求一元二次方程的虚根
- 应届生入职半年被裁员了,我该怎么办?