单一功能原则[编辑]
|
在面向对象编程领域中,单一功能原则(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.
相关推荐
本文将深入探讨这六大原则中的第一个——单一职责原则(Single Responsibility Principle, SRP),并结合AcountYear.java这个文件名来解析该原则的应用。 单一职责原则指出,一个类或者一个模块应该只有一个引起它...
**单一职责原则(Single Responsibility Principle, SRP)**是面向对象设计中的一个重要原则,由罗伯特·C·马丁(Robert C. Martin)提出。这一原则指出,一个类或者模块应该有且只有一个职责,即它应该只负责一项...
在这个类的设计中,应遵循单一职责原则,将方块的创建、旋转、移动和碰撞检测等职责分离,避免在一个类中混杂过多的功能。 在深入学习这个源码时,你可以关注以下几个方面: 1. 如何使用C#的图形用户界面(GUI)库...
单一职责原则指出,一个类或模块应该只有一个职责或功能。这意味着,一个类的代码应该专注于完成一件事情,而不是同时处理多个不相关的任务。这样做可以降低类的复杂性,增加代码的可读性和可测试性。如果一个类包含...
在实际开发中,我们可以将单一职责原则应用于类、接口、方法等多个层面,确保它们各自专注于自己的功能。 例如,当我们设计一个名为`OrderService`的类时,如果这个类同时处理订单创建、订单支付以及订单发货的功能...
1. **单一功能原则**:每个类应专注于一个主要任务,提供单一服务。如果一个类试图完成多种功能,它应该被拆分为多个类,反之,如果多个类处理同一任务,可能需要进行合并。这有助于提高代码的可读性和可维护性。 2...
其中,"单一职责原则"(Single Responsibility Principle,SRP)是面向对象设计的基本原则之一,也是Java设计模式中的重要组成部分。本篇文章将深入探讨单一职责原则的概念、意义、应用及其在Java编程中的实际运用。...
**单一职责原则(Single Responsibility Principle, SRP)**是面向对象设计的基本原则之一,由罗伯特·C·马丁(Robert C. Martin)提出,并在《敏捷软件开发:原则、模式和实践》中阐述。这一原则是SOLID原则的首...
《单一原则(SRP)在程序设计中的应用与实践》 单一职责原则(Single Responsibility Principle,简称SRP)是面向对象设计的基本原则之一,由罗伯特·C·马丁(Robert C. Martin)在其著作《Clean Architecture》中...
44. **单一功能原则**:一个函数或类应只完成一个功能,避免多用途的混合设计。 45. **同质性原则**:类的成员应具有相似的属性和行为,保持类的内聚性。 46. **静态属性的使用**:静态属性应谨慎使用,避免其带来...
《单一职责原则详解》 在软件工程领域,设计原则是构建高质量、可维护代码的关键指导方针。其中,“单一职责原则”(Single Responsibility Principle,SRP)是面向对象设计的五个核心原则之一,由罗伯特·C·马丁...
2. 软件设计原则:包括单一功能原则、单一责任原则、接口隔离原则等。 3. 软件设计模式:包括 creational pattern、structural pattern、behavioral pattern 等。 四、算法设计 算法设计是计算机科学和技术领域中...
单一职责原则(Single Responsibility Principle, SRP)指出,一个类或模块应当只有一个改变的原因,即它应该只有一个明确的责任或功能。这样做的目的是为了提高代码的可读性、可维护性和可扩展性。 在上述描述中...
1. **单一功能原则(Single Responsibility Principle, SRP)**:每个类应只有一个职责,其功能应完全封装在这个类内,确保类的服务与职责保持平行,减少依赖性。遵循SRP可以使代码更模块化,降低更改引起的风险。 ...
模块分解应遵循单一功能原则,减少模块间的耦合度,提高程序的可扩展性和可维护性。C语言中,函数是实现模块化的基础,每个函数通常对应一个特定的模块功能。程序可以由多个源文件组成,每个源文件包含一组相关的...
1. **单一功能原则**:每个方法应仅执行一个功能,避免方法过于庞大。 2. **参数与返回值**:参数类型和返回值尽量接口化,减少具体实现的依赖,增强系统扩展性。 **Web命名规范** 1. **jsp页面命名**:jsp页面...
在面向对象编程中,内聚性高意味着一个方法应该实现单一功能。高内聚的模块或方法通常更易于理解和维护,同时也有助于代码的重用。相反,如果一个类的方法彼此间很少相关,或者执行不相关的活动并使用不相关数据集,...
避免大函数,遵循单一功能原则。合理使用函数参数,尽量减少参数数量,避免使用全局变量,以减少副作用和提高代码可读性。此外,注意异常处理,合理使用异常机制来捕获和处理错误。 **模板和泛型编程** 是C++的另一...
图形编辑器GraphicEditor类需要遵循单一职责原则,即一个类只负责完成一个功能或职责.uml