`
dcj3sjt126com
  • 浏览: 1825491 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

单一功能原则

阅读更多

单一功能原则[编辑]

 
 
SOLID原则

面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。所有它的(这个类的)服务都应该严密的和该功能平行(功能平行,意味着没有依赖)。

这个术语由罗伯特·C·马丁(Robert Cecil Martin)在他的《敏捷软件开发,原则,模式和实践》一书中的一篇名为〈面向对象设计原则〉的文章中给出。 [1] 马丁表述该原则是基于的《结构化分析和系统规格》[2]一书中的内聚原则(Cohesion)上。

马丁把功能(职责)定义为:“改变的原因”,并且总结出一个类或者模块应该有且只有一个改变的原因。一个具体的例子就是,想象有一个用于编辑和打印报表的模块。这样的一个模块存在两个改变的原因。第一,报表的内容可以改变(编辑)。第二,报表的格式可以改变(打印)。这两方面会的改变因为完全不同的起因而发生:一个是本质的修改,一个是表面的修改。单一功能原则认为这两方面的问题事实上是两个分离的功能,因此他们应该分离在不同的类或者模块里。把有不同的改变原因的事物耦合在一起的设计是糟糕的。

保持一个类专注于单一功能点上的一个重要的原因是,它会使得类更加的健壮。继续上面的例子,如果有一个对于报表编辑流程的修改,那么将存在极大的危险性,打印功能的代码会因此不工作,假使这两个功能存在于同一个类中的话。

参见[编辑]

引用[编辑]

  1. ^ Martin, Robert C.. Agile Software Development, Principles, Patterns, and Practices. Prentice Hall. 2002. ISBN 0-13-597444-5.
  2. ^ DeMarco, Tom.. Structured Analysis and System Specification. Prentice Hall. 1979. ISBN 0-13-854380-1.
分享到:
评论

相关推荐

    设计模式定义与设计原则1

    1、单一职责原则单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一

    2011年6月面向对象分析与设计试题B卷.doc附有详答案

    单一功能原则 7. 一个类的______只能被类的成员函数、友元函数及派生类的成员函数所访问。 A. 私有成员 B. 受保护性成员 C. 公有成员 D. 纯虚函数 8. 当对象离开其有效范围,或被清除时,______将被调用来释放...

    图形编辑器GraphicEditor类需要遵循单一职责原则,即一个类只负责完成一个功能或职责.uml

    图形编辑器GraphicEditor类需要遵循单一职责原则,即一个类只负责完成一个功能或职责.uml

    浅谈c#设计模式之单一原则

    单一原则: 程序设计时功能模块独立,功能单一更有助于维护和复用。 例如:个人计算机功能很多,如果想从中只拿出一个功能来制造一个新的东西是困难的。同时如果你的计算机开不机,同时你的计算器功能也不能用了。 ...

    DesignPatterns:设计模式原始码,本项目与CSDN博客同步展示,希望将自己的设计模式的认知展示出来与大家共同探讨和分析,在讲解设计模式的同时,将写博客期间写的示例进行分享,本项目会在博客更新后截图内进行代码示例的更新,请大家多多关注和支持!博客地址:http

    博客地址: : 设计模式文章概述单一功能原则单一功能原则(单一责任原则)规定每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。平行,意味着没有依赖)。http 里氏替换原则在面向对象的程序设计...

    netfox-api:NetFox cocos2dx前端API

    项目遵循面向对象设计五个基本原则ILOVEYOUS单一功能原则认为对象应该仅具有一种单一功能的概念。O开闭原则认为“软件体应该是对于扩展开放的,但是对于修改封闭的”的概念。L里氏替换原则认为“程序中的对象应该是...

    JAVA设计模式六大原则详细讲解(面向对象语言通用)

    1.单一职责原则: 不要存在多于一个导致类变更的原因 2.里氏替换法则:子类可以扩展父类的功能,但不能改变父类原有的功能 3.依赖倒置原则:面向接口编程 4.接口隔离原则: 客户端不应该依赖它不需要的接口;一个类对...

    design-patterns:JavaScript中的设计模式

    单一功能原则 开放封闭原则 核心思想--封装变化 一个简单的产品流程节点可以分为: 想法 -> 需求 -> 设计 -> 开发 -> 测试 -> 部署 -> 产品  通过上面的关键节点可以看出, 影响一个产品的复杂程度的主要节点是需求与...

    JAVA六大原则代码.zip

    单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个引起它变化的原因,即一个类应该只有一个职责。这个原则鼓励将不同的功能分离到不同的类中,以减少类的复杂性,提高代码的可维护性。 ...

    每个程序员都必须遵守的编程原则单页版

    把十几个重要的开发原则整在一张A4纸里,可以打印出来,贴在你旁边,天天看:p ...单一职责原则 最小化耦合关系 最大化内聚性 隐藏实现细节 笛米特法则(Law of Demeter) 避免过早优化 代码复用 职责分离 拥抱变化

    IOS设计模式

    变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。 问题提出  假设有一个类C,它负责两个不同的职责:职责P1和P2。当职责P1需求发生改变而需要修改...

    Java实现登录功能

    [实验任务二]:单一职责原则 登录模块在实际项目开发中很常见,请按照教材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 模块...

    第一章设计模式与七大原则.doc

    第一章设计模式与七大原则笔记,自己看网课写的,需要的关注拿一下吧,23种设计模式,背后其实是七大设计原则,也就是说,每个设计模式都归属于一个或多个设计原则7大设计原则:a单一职责原则 b里氏替换 c依赖倒置...

    设计模式六大原则

    解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险。说到单一职责原则,...

    java高级程序设计课后习题答案

    5. 请简述功能单一原则与代码抽象层次的关系? 6. 请简述功=函数能单一与函数长度之间的关系? 7. 请简述代码重复对代码质量的影响,代码重复对代码可修改性的影响? 8. 请简述封装与代码功能单一的关系?

    敏捷软件开发原则、模式与实践 C#版

    第一部分 敏捷开发 第1章 敏捷实践 第2章 极限编程概述 第3章 计划 第4章 测试 第5章 重构 第6章 一次编程实践 第二部分 敏捷设计 第7章 什么是敏捷设计 第8章 SRP:单一职责原则 第9章 OCP:开放-封闭原则 第10章 ...

    Solid-Design-Principles-in-Java:SOLID设计原则及其在Java 9中的实现

    SOLID包含5种编码实践: SRP-单一责任原则OCP-打开/关闭原理LSP-Liskov替代原理ISP-接口隔离原则DIP-依赖倒置原则SRP-单一责任原则SRP-表示每个方法/类应负责一个特定的活动。 将所有内容插入一种方法不符合客观性...

    Android 闪光灯手电筒软件源码.zip

    Android 闪光灯手电筒软件源码,练手项目,软著参考、实际项目框架参考、快速上线,学习实例,开箱即...软件功能单一,除了照明没有其他的功能,占用内存小,遵照简洁、实用、极端单一的原则。 希望能给大家带来帮助。

Global site tag (gtag.js) - Google Analytics