`
dcj3sjt126com
  • 浏览: 1877471 次
  • 性别: 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):单一职责原则

    本文将深入探讨这六大原则中的第一个——单一职责原则(Single Responsibility Principle, SRP),并结合AcountYear.java这个文件名来解析该原则的应用。 单一职责原则指出,一个类或者一个模块应该只有一个引起它...

    单一职责原则

    **单一职责原则(Single Responsibility Principle, SRP)**是面向对象设计中的一个重要原则,由罗伯特·C·马丁(Robert C. Martin)提出。这一原则指出,一个类或者模块应该有且只有一个职责,即它应该只负责一项...

    C#俄罗斯方块源码(单一职责原则)

    在这个类的设计中,应遵循单一职责原则,将方块的创建、旋转、移动和碰撞检测等职责分离,避免在一个类中混杂过多的功能。 在深入学习这个源码时,你可以关注以下几个方面: 1. 如何使用C#的图形用户界面(GUI)库...

    15丨理论一:对于单一职责原则,如何判定某个类的职责是否够“单一”?1

    单一职责原则指出,一个类或模块应该只有一个职责或功能。这意味着,一个类的代码应该专注于完成一件事情,而不是同时处理多个不相关的任务。这样做可以降低类的复杂性,增加代码的可读性和可测试性。如果一个类包含...

    单一职责模式例子。

    在实际开发中,我们可以将单一职责原则应用于类、接口、方法等多个层面,确保它们各自专注于自己的功能。 例如,当我们设计一个名为`OrderService`的类时,如果这个类同时处理订单创建、订单支付以及订单发货的功能...

    C++类和接口的设计原则探讨

    1. **单一功能原则**:每个类应专注于一个主要任务,提供单一服务。如果一个类试图完成多种功能,它应该被拆分为多个类,反之,如果多个类处理同一任务,可能需要进行合并。这有助于提高代码的可读性和可维护性。 2...

    Java设计模式中单一职责原则详解.rar

    其中,"单一职责原则"(Single Responsibility Principle,SRP)是面向对象设计的基本原则之一,也是Java设计模式中的重要组成部分。本篇文章将深入探讨单一职责原则的概念、意义、应用及其在Java编程中的实际运用。...

    单一职责原则.pdf

    **单一职责原则(Single Responsibility Principle, SRP)**是面向对象设计的基本原则之一,由罗伯特·C·马丁(Robert C. Martin)提出,并在《敏捷软件开发:原则、模式和实践》中阐述。这一原则是SOLID原则的首...

    单一原则SRP.zip

    《单一原则(SRP)在程序设计中的应用与实践》 单一职责原则(Single Responsibility Principle,简称SRP)是面向对象设计的基本原则之一,由罗伯特·C·马丁(Robert C. Martin)在其著作《Clean Architecture》中...

    初学必读:61条面向对象设计的经验原则

    44. **单一功能原则**:一个函数或类应只完成一个功能,避免多用途的混合设计。 45. **同质性原则**:类的成员应具有相似的属性和行为,保持类的内聚性。 46. **静态属性的使用**:静态属性应谨慎使用,避免其带来...

    6单一职责原则-课程内容.rar

    《单一职责原则详解》 在软件工程领域,设计原则是构建高质量、可维护代码的关键指导方针。其中,“单一职责原则”(Single Responsibility Principle,SRP)是面向对象设计的五个核心原则之一,由罗伯特·C·马丁...

    2022年计算机二级C++考前模拟练习题.docx

    2. 软件设计原则:包括单一功能原则、单一责任原则、接口隔离原则等。 3. 软件设计模式:包括 creational pattern、structural pattern、behavioral pattern 等。 四、算法设计 算法设计是计算机科学和技术领域中...

    14丨软件设计的单一职责原则:为什么说一个类文件打开最好不要超过一屏?.pdf

    单一职责原则(Single Responsibility Principle, SRP)指出,一个类或模块应当只有一个改变的原因,即它应该只有一个明确的责任或功能。这样做的目的是为了提高代码的可读性、可维护性和可扩展性。 在上述描述中...

    2018216134_王淑军_源代码设计模式1

    1. **单一功能原则(Single Responsibility Principle, SRP)**:每个类应只有一个职责,其功能应完全封装在这个类内,确保类的服务与职责保持平行,减少依赖性。遵循SRP可以使代码更模块化,降低更改引起的风险。 ...

    c语言学习-c语言第章.pptx

    模块分解应遵循单一功能原则,减少模块间的耦合度,提高程序的可扩展性和可维护性。C语言中,函数是实现模块化的基础,每个函数通常对应一个特定的模块功能。程序可以由多个源文件组成,每个源文件包含一组相关的...

    JAVA开发规范文档.pdf

    1. **单一功能原则**:每个方法应仅执行一个功能,避免方法过于庞大。 2. **参数与返回值**:参数类型和返回值尽量接口化,减少具体实现的依赖,增强系统扩展性。 **Web命名规范** 1. **jsp页面命名**:jsp页面...

    6单一职责原则-MOOC课程内容.pdf

    在面向对象编程中,内聚性高意味着一个方法应该实现单一功能。高内聚的模块或方法通常更易于理解和维护,同时也有助于代码的重用。相反,如果一个类的方法彼此间很少相关,或者执行不相关的活动并使用不相关数据集,...

    C++编程思想

    避免大函数,遵循单一功能原则。合理使用函数参数,尽量减少参数数量,避免使用全局变量,以减少副作用和提高代码可读性。此外,注意异常处理,合理使用异常机制来捕获和处理错误。 **模板和泛型编程** 是C++的另一...

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

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

Global site tag (gtag.js) - Google Analytics