单一功能原则[编辑]
|
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。所有它的(这个类的)服务都应该严密的和该功能平行(功能平行,意味着没有依赖)。
这个术语由罗伯特·C·马丁(Robert Cecil Martin)在他的《敏捷软件开发,原则,模式和实践》一书中的一篇名为〈面向对象设计原则〉的文章中给出。 [1] 马丁表述该原则是基于的《结构化分析和系统规格》[2]一书中的内聚原则(Cohesion)上。
马丁把功能(职责)定义为:“改变的原因”,并且总结出一个类或者模块应该有且只有一个改变的原因。一个具体的例子就是,想象有一个用于编辑和打印报表的模块。这样的一个模块存在两个改变的原因。第一,报表的内容可以改变(编辑)。第二,报表的格式可以改变(打印)。这两方面会的改变因为完全不同的起因而发生:一个是本质的修改,一个是表面的修改。单一功能原则认为这两方面的问题事实上是两个分离的功能,因此他们应该分离在不同的类或者模块里。把有不同的改变原因的事物耦合在一起的设计是糟糕的。
保持一个类专注于单一功能点上的一个重要的原因是,它会使得类更加的健壮。继续上面的例子,如果有一个对于报表编辑流程的修改,那么将存在极大的危险性,打印功能的代码会因此不工作,假使这两个功能存在于同一个类中的话。
参见[编辑]
- Separation of concerns
- Chain-of-responsibility pattern
- 内聚原则
- 开闭原则
- SOLID - “SOLID”中的 S 指代了单一功能原则
引用[编辑]
- ^ Martin, Robert C.. Agile Software Development, Principles, Patterns, and Practices. Prentice Hall. 2002. ISBN 0-13-597444-5.
- ^ DeMarco, Tom.. Structured Analysis and System Specification. Prentice Hall. 1979. ISBN 0-13-854380-1.
相关推荐
1、单一职责原则单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一
单一功能原则 7. 一个类的______只能被类的成员函数、友元函数及派生类的成员函数所访问。 A. 私有成员 B. 受保护性成员 C. 公有成员 D. 纯虚函数 8. 当对象离开其有效范围,或被清除时,______将被调用来释放...
图形编辑器GraphicEditor类需要遵循单一职责原则,即一个类只负责完成一个功能或职责.uml
单一原则: 程序设计时功能模块独立,功能单一更有助于维护和复用。 例如:个人计算机功能很多,如果想从中只拿出一个功能来制造一个新的东西是困难的。同时如果你的计算机开不机,同时你的计算器功能也不能用了。 ...
博客地址: : 设计模式文章概述单一功能原则单一功能原则(单一责任原则)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。平行,意味着没有依赖)。http 里氏替换原则在面向对象的程序设计...
项目遵循面向对象设计五个基本原则ILOVEYOUS单一功能原则认为对象应该仅具有一种单一功能的概念。O开闭原则认为“软件体应该是对于扩展开放的,但是对于修改封闭的”的概念。L里氏替换原则认为“程序中的对象应该是...
1.单一职责原则: 不要存在多于一个导致类变更的原因 2.里氏替换法则:子类可以扩展父类的功能,但不能改变父类原有的功能 3.依赖倒置原则:面向接口编程 4.接口隔离原则: 客户端不应该依赖它不需要的接口;一个类对...
单一功能原则 开放封闭原则 核心思想--封装变化 一个简单的产品流程节点可以分为: 想法 -> 需求 -> 设计 -> 开发 -> 测试 -> 部署 -> 产品 通过上面的关键节点可以看出, 影响一个产品的复杂程度的主要节点是需求与...
单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个引起它变化的原因,即一个类应该只有一个职责。这个原则鼓励将不同的功能分离到不同的类中,以减少类的复杂性,提高代码的可维护性。 ...
把十几个重要的开发原则整在一张A4纸里,可以打印出来,贴在你旁边,天天看:p ...单一职责原则 最小化耦合关系 最大化内聚性 隐藏实现细节 笛米特法则(Law of Demeter) 避免过早优化 代码复用 职责分离 拥抱变化
变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。 问题提出 假设有一个类C,它负责两个不同的职责:职责P1和P2。当职责P1需求发生改变而需要修改...
[实验任务二]:单一职责原则 登录模块在实际项目开发中很常见,请按照教材28页利用单一职责原则重构后的类图实现这一模块。
6.10 单一功能规则 6.11 简单功能规则 6.12 明确条件规则 6.13 选用FALSE规则 6.14 独立赋值规则 6.15 定义常量规则 6.16 模块化规则 6.17 交流规则 7 编程准则 7.1 变量使用 7.2 数据库操作 7.3 对象使用 7.4 模块...
第一章设计模式与七大原则笔记,自己看网课写的,需要的关注拿一下吧,23种设计模式,背后其实是七大设计原则,也就是说,每个设计模式都归属于一个或多个设计原则7大设计原则:a单一职责原则 b里氏替换 c依赖倒置...
解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险。说到单一职责原则,...
5. 请简述功能单一原则与代码抽象层次的关系? 6. 请简述功=函数能单一与函数长度之间的关系? 7. 请简述代码重复对代码质量的影响,代码重复对代码可修改性的影响? 8. 请简述封装与代码功能单一的关系?
第一部分 敏捷开发 第1章 敏捷实践 第2章 极限编程概述 第3章 计划 第4章 测试 第5章 重构 第6章 一次编程实践 第二部分 敏捷设计 第7章 什么是敏捷设计 第8章 SRP:单一职责原则 第9章 OCP:开放-封闭原则 第10章 ...
SOLID包含5种编码实践: SRP-单一责任原则OCP-打开/关闭原理LSP-Liskov替代原理ISP-接口隔离原则DIP-依赖倒置原则SRP-单一责任原则SRP-表示每个方法/类应负责一个特定的活动。 将所有内容插入一种方法不符合客观性...
Android 闪光灯手电筒软件源码,练手项目,软著参考、实际项目框架参考、快速上线,学习实例,开箱即...软件功能单一,除了照明没有其他的功能,占用内存小,遵照简洁、实用、极端单一的原则。 希望能给大家带来帮助。