文章目录

  • 概念
  • 优缺点总结

概念

单一职责原则(Single Responsibility Principle, SRP):一个模块、类或者方法只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。

wiki上的定义:The single-responsibility principle (SRP) is a computer-programming principle that states that every module, class or function in a computer program should have responsibility over a single part of that program’s functionality, and it should encapsulate that part.

单一职责原则可以看作是低耦合、高内聚在面向对象原则上的引申与扩展,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而极大的损伤其内聚性和耦合度。单一职责,通常意味着单一的功能,因此不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因。

单一职责原则适用于接口、类和具体的方法。接口尽可能做到单一性,类和方法也要在设计时遵

设计模式C++实现40讲(2)设计原则之单一职责相关推荐

  1. Java设计原则之单一职责原则、开闭原则、里氏代换原则

    文章目录 面向对象设计原则概述 单一职责原则 开闭原则 里氏代换原则 面向对象设计原则概述 软件的可维护性(Maintainability)和可复用性(Reusability)是两个非常重要的用于衡量 ...

  2. 经典设计原则:单一职责原则(SRP)

    本文详解设计原则中的单一职责原则,目的还是提高代码的可读性.可扩展性.复用性.可维护性等. 目录 1. 单一职责原则(SRP) 2. 如何理解单一职责原则? 3. 如何判断类的职责是否足够单一? 4. ...

  3. 设计原则:单一职责原则

    单一职责原则(SRP) 单一职责原则的英文是 Single Responsibility Principle,缩写为 SRP.这个原则的英文描述是这样的:A class or module shoul ...

  4. 七大设计原则之单一职责原则应用

    目录 1 单一职责原则介绍 2 单一职责原则应用 1 单一职责原则介绍 单一职责(Simple Responsibility Pinciple,SRP)是指不要存在多于一个导致类变更的原因.假设我们有 ...

  5. 架构中的设计原则之单一职责原则 - 《java开发技术-在架构中体验设计模式和算法之美》...

    2019独角兽企业重金招聘Python工程师标准>>> 单一职责模式: 单一职责原则的核心思想就是:系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成. ...

  6. 设计模式---面向对象设计原则之单一职责原则

    单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小.单一职责原则定义如下: 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领 ...

  7. 六大设计原则之单一职责原则

    单一职责原则 单一职责原则(Single Responsibility Principle)–SRP: There should never be more than one reason for a ...

  8. 6大设计原则之单一职责原则

    单一职责原则 如果有一个用户管理类,类图如下 我想,任谁也能看的出这个接口设计的有问题,用户的属性和用户的行为没有分开,应该把用户的信息抽取成一个业务对象,把用户的行为抽取成一个业务对象,按照这个思路 ...

  9. 六大设计原则之单一职责原则(SRG)

    在做代码练习或者开发的过程中,我们会发现自己写的类越来越大,该类的功能也越来越多.有一些开发者包括之前的我看到自己写的类够大,功能够多是往往会充满自豪感.但是当某个功能需要做一个小改动时,就会发现整个 ...

最新文章

  1. 梭子鱼任命James Forbes-May为亚太区销售副总裁
  2. win10 vEthernet
  3. 01-spring配置详解
  4. 56秒看完131年英格兰顶级联赛冠军排行:利物浦时隔30年再夺冠
  5. python图像数据是几维数据_python实现读取类别频数数据画水平条形图案例
  6. js中top,left,height,width相关参数的解析和实例
  7. Android 反编译方法
  8. router走差分_route
  9. 计算机运维需要那些知识,运维必知必备!73页计算机基础知识,新手小白也能轻松读懂...
  10. mysql建考勤信息代码_C++嵌入式SQL写考勤/点名功能程序
  11. 图像处理(四) Sobel边缘检测与canny边缘检测对比
  12. 电视剧《一代枭雄》观后感
  13. WEB打印控件Lodop(V6.x)使用说明及样例
  14. file_get_contents获取参数并用file_put_contents保存图片
  15. LCD1602的使用详解
  16. 读《我能记住 - 读写记忆困难儿童实战》
  17. Java猿社区—log4j2一站式教程
  18. 造血干细胞扩增、转染以及基因编辑优化解决方案
  19. KMP算法-next函数介绍
  20. 【无标题】ARCGIS 多个线段组成区域如何转面

热门文章

  1. Jquery实现对话框(弹框)功能:
  2. 磨刀不误砍柴工 ——《自己动手写操作系统》入门导引
  3. 点云的粗配准和精配准
  4. 月圆向吉,花开见喜 | 元宵节快乐!
  5. 基于Matlab的Robotics Toolbox工具箱的机器人仿真函数介绍(运动学)
  6. 定积分法求区间内sin x的面积
  7. runtime error: member access within null pointer of type ‘struct ListNode‘
  8. jquery的$是什么意思?
  9. 用Excel实现自动获取期货、期权、股票行情及下载历史数据
  10. 思科telnet远程登入