首页 > 其他分享 >小菜学设计模式 单一职责原则

小菜学设计模式 单一职责原则

时间:2023-03-22 12:06:49浏览次数:34  
标签:职责 原则 引起 小菜 耦合 设计模式 变化 单一


单一职责原则:就一个类而言,应该仅有一个引起它变化的原因!
如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受意想不到的破坏!

 

 

单一职责原则,其核心的思想是:

一个类,最好只做一件事,只有一个引起它变化的原因。

一个优良的系统设计,强调模块间保持低耦合、高内聚的关系,在面向对象设计中这条规则同样适用,所以面向对象的第一个设计原则就是:单一职责原则(SRP,Single Responsibility Principle)。

单一职责,强调的是职责的分离,在某种程度上对职责的理解,构成了不同类之间耦合关系的设计关键,因此单一职责原则或多或少成为设计过程中一个必须考虑的基础性原则。

 

单一职责原则可以看作是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而极大的损伤其内聚性和耦合度。单一职责,通常意味着单一的功能,因此不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因。

 

关于单一职责原则,建议是:

  1. 一个类只有一个引起它变化的原因,否则就应当考虑重构。
  2. SRP由引起变化的原因决定,而不由功能职责决定。虽然职责常常是引起变化的轴线,但是有时却未必,应该审时度势。
  3. 测试驱动开发,有助于实现合理分离功能的设计。
  4. 可以通过Façade模式或Proxy模式进行职责分离。

 

 

 

                              二〇〇九年十一月五日

标签:职责,原则,引起,小菜,耦合,设计模式,变化,单一
From: https://blog.51cto.com/dupeng0811/6142342

相关文章

  • 前端设计模式——模板方法模式
    模板方法模式(TemplateMethodPattern):定义一个行为的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个行为的结构即可重定义该行为的某些特定步骤。这些步......
  • go 常用设计模式-结构型模式
    本次分享结构型模式,主要包括:代理模式装饰器模式适配器模式享元模式1.代理模式packageproxyimport"fmt"/*结构型模式代理,代表打理,以他人的名义代表委托人......
  • go 常用设计模式-行为型模式
    本次分享的行为型模式,主要包含:责任链模式策略模式观察者模式模板模式访问者模式1.责任链模式packagechainOfResponsibilityimport"fmt"/*行为模式:通过账......
  • 前端设计模式——状态模式
    状态模式(StatePattern):将对象的行为和状态分离,使得对象可以根据不同的状态来改变自己的行为。在前端开发中,可以使用状态模式来管理页面的状态和响应用户的交互。在状态模......
  • 前端设计模式——桥接模式
    桥接模式(BridgePattern)是一种结构型设计模式,用于将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而能够更好地组合和扩展这些类。在前端开发中,桥接......
  • 设计模式(二十六)----行为型模式之备忘录模式
    1概述备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,很多软件......
  • 前端设计模式——过滤器模式
    前端设计模式中的过滤器模式(FilterPattern)是一种结构型设计模式,它允许我们使用不同的条件来过滤一组对象,并返回符合条件的对象列表。在过滤器模式中,我们有一个包含多个对......
  • 前端设计模式——原型模式
    原型模式(PrototypePattern):使用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。在JavaScript中,所有的对象都有一个原型链。原型链是一种机制,它允许我们在对......
  • 设计模式(二十五)----行为型模式之访问者模式
    1概述定义:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。2结构访问者模式包含以下主要角色:抽......
  • java设计模式 之 单例模式
    单例模式单例模式(SingletonPattern)是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。对于整个软件系统中,对于某个......