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

设计模式之六大原则——单一职责原则(SRP)

 
阅读更多
定义:

应该有且仅有一个原因引起类的变更。

There should never be more than one reason for a class to change.



优点:

1、类的复杂性降低,实现什么职责都有清晰明确的定义;

2、可读性提高,复杂性减低,可读性当然提高;

3、可维护性提高,可读性提高,可维护性当然提高;

4、变更引起的风险减低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的类有影响,对其他接口无影响,这对系统的扩展性、维护性都有非常大的帮助。



注意:

单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异。



建议:

接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。
(只有一个原因引起变化-意思是 一个接口只描述一个功能)
分享到:
评论

相关推荐

    设计模式六大原则(1):单一职责原则

    设计模式六大原则是面向对象编程中的基石,为代码的可维护性、扩展性和复用性提供了指导。本文将深入探讨这六大原则中的第一个——单一职责原则(Single Responsibility Principle, SRP),并结合AcountYear.java这...

    设计模式六大原则 设计模式详解

    首先,我们将关注其中的一个重要原则——单一职责原则(Single Responsibility Principle,SRP)。 单一职责原则指出,一个类或模块应该只有一个引起其变化的原因,即它应该只有一个职责。这个原则有助于保持代码的...

    23种 设计模式---面向对象的基本原则

    1. 单一职责原则(Single Responsibility Principle, SRP):一个类应该只有一个引起它变化的原因。这意味着一个类应该只做一件事情,这样可以提高代码的可维护性和可读性。 2. 开放封闭原则(Open-Closed ...

    设计模式——JAVA.docx

    ### JAVA设计模式总结之23种设计模式及六大原则 #### 一、设计模式之六大原则 ##### 总原则:开闭原则(Open Close Principle) 开闭原则是设计模式中最核心的原则之一,它强调的是软件实体(类、模块、函数等)...

    HeadFirst设计模式

    - **单一职责原则**(SRP): 一个类应该只有一个引起变化的原因。 - **开放封闭原则**(OCP): 软件实体(类、模块、函数等)应该是可以扩展的,但不可修改。 - **里氏替换原则**(LSP): 子类必须能够替换它们的基类。 ...

    设计模式design-pattern-java.pdf

    单一职责原则(Single Responsibility Principle, SRP)指出每个类应该只负责一项功能,并且该类的功能更改只应该有一个原因。这样做的好处在于可以降低类之间的耦合度,提高系统的可维护性。 #### 1.2.2 面向对象...

    Java设计模式经典搞笑珍藏版

    本书还详细介绍了六大设计原则,包括单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则和开闭原则。这些原则是编写高质量、易于维护的代码的基础。 **单一职责原则** (Single Responsibility ...

    软件设计模式复习题.docx

    本资源摘要信息所涉及的知识点包括软件设计模式的五个方面:开闭原则、依赖倒置原则、单一职责原则、软件复用方式比较、工厂方法模式和合成模式。 一、开闭原则 开闭原则的基本思想是:软件实体应当对扩展开放,而...

    java设计模式

    1. **单一职责原则 (Single Responsibility Principle, SRP):** 一个类应该只有一个引起它变化的原因。 2. **里氏替换原则 (Liskov Substitution Principle, LSP):** 子类型必须能够替换它们的基类型。 3. **依赖...

    Software-Engineering-Design

    在软件工程设计中,我们遵循一些基本原则,如单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)和依赖倒置原则(DIP)。这些原则指导我们编写易于理解和维护的代码。同时,设计模式...

Global site tag (gtag.js) - Google Analytics