认识单一职责原则
单一职责原则是面向对象设计中最重要的原则之一,而面向对象最基础的东西就是类和对象的使用,而单一职责可以说是对类和对象的一种要求,也就是要求类应该有且仅有
一个引起它变化的原因。
开闭原则是指一个类,只有一个引起它变化的原因。有且只有一
个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。
单一职责原则由来
谈到单一职责原则的由来不得不说面向对象,也不得不说需求是在不断变化,因为软件需求唯一的不变的真理就是软件需求一定会变化,因为需求变化,所以我们就要用到面向对象的设计思想,而面向对象的要求就是复用、能用最小的代价应对变化、不用改变现有代码就能满足扩展(其实这就上一篇博客中说的
《开闭原则》
)。在面向对象的要求下,许多人在这些问题上思考了很多,也花费了很大努力来实现这几点,所以单一职责原则就在这样的背景下诞生了。
单一职责原则的好处
① 单一职责原则提供了一个编写程序的标准,也就是让类的复杂性降低,实现什么职责都有清晰明确的定义
② 在可读性和可维护性上得到了提高,因为类的职责单一,对类的阅读,类之间的调用关系都是清晰明确的。
项目中分析单一职责原则
在这里引用一个比较经典的例子,就是图形计算程序和图形绘制程序调用Area()方法和Draw()方法的例子。
例子出处《
开篇-模式和原则
》:
图形计算程序只使用了正方形的Area()方法,永远没有使用Draw()方法,而它却和draw方法关联起来,这就违反了单一指责原则,如果将来有一天图形绘制程序导致draw发生变化,那就影响到了本来毫无关系的图形计算程序。
所以我们应该将不同的职责分配给不同的类,让每个类的职责单一,隔离变化,如图:
常言道
常言道:该你管的你管,不该你管的你别插手。
分享到:
相关推荐
### 设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 引言 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。GoF(Gang of Four)所提出的23种设计模式,被认为是面向对象...
- **缺点**:违反单一职责原则,容易成为系统瓶颈。 - **1.4 Builder模式**:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - **应用场景**:当创建复杂对象的算法应该独立于部分...
本文将深入探讨这六大原则中的第一个——单一职责原则(Single Responsibility Principle, SRP),并结合AcountYear.java这个文件名来解析该原则的应用。 单一职责原则指出,一个类或者一个模块应该只有一个引起它...
1. **设计原则**:首先,教程会介绍SOLID原则,包括单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些都是设计模式的基础,有助于编写出易于维护和扩展的代码。 2. **创建型模式**:...
### C++设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 引言 设计模式作为面向对象编程的核心组成部分,是软件开发者在长期实践中总结出来的最佳实践。本文旨在深入剖析GoF(Gang of Four)提出的23种...
### c++设计模式精解—GoF 23种设计模式解析附C++实现源码 #### 0. 引言 设计模式是面向对象编程领域的重要组成部分,它提供了一系列解决常见问题的方法论。本文旨在深入解析GoF(Gang of Four)所提出的23种设计...
同时,设计模式也有助于提升系统的可扩展性和可维护性,因为它们遵循了良好的设计原则,如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则和接口隔离原则。 在Java开发中,熟练掌握和运用设计模式不仅可以提升...
此外,它也可能讨论了设计原则,如单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)和依赖倒置原则(DIP),这些都是面向对象设计的基础。 设计模式的应用能提高代码的可读性、可维护性和...
设计原则通常包括但不限于单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)以及依赖倒置原则(DIP)等。 - **单一职责原则** (SRP): 指一个模块或类应该只负责一项功能的变化,即一个类或...
- **缺点**:违反单一职责原则,可能引入全局状态,导致程序难以测试和维护。 4. **Builder模式** - **定义**:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 - **应用场景**:当...
本书着重讲解了面向对象设计原则,如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则和接口隔离原则。这些原则是设计模式的基础,为构建高质量的iOS应用程序提供了理论支持。 书中详细介绍了多种iOS设计模式,...
- **单一职责原则**:一个类应该只有一个引起它变化的原因。 - **里氏替换原则**:子类型必须能够替换掉它们的基类型。 - **依赖倒置原则**:高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于...