当前位置: 首页 > news >正文

设计模式-观察者模式、命令模式

观察者模式

Observer(观察者)—对象行为型模式定义:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,在它的状态发生变化时,会通知所有的观察者.

先将 Observer A B C 注册到 Observable ,那么当 Observable 状态改变时会通知它持有的所有 Observer

设计原则:

• 遵循迪米特法则

• 开闭原则

适用场景分析:

1.事件多级触发场景,如bean生命周期产生的事件。

2.跨系统的消息交换场景,如消息队列的处理机制。

命令模式

Command(命令)—对象行为型模式定义:将一个请求封装成一个对象,以便使用不同参数来表示不同的请求(即命名)。

Action 封装了具体行为,Command 封装了 Action 并提供空方法 execute() ,它的子类通过重写该方法可在方法里调用 mAction 不同行为达到封装命令的目的。

设计原则:

• 遵循迪米特

• 单一职责

• 开闭原则适用场景分析:

1.在GUI开发中,一个按钮的点击是一个命令,可以采用命令模式;模拟DOS命令的时候,当然也要采用命令模式。

2.智能家居、机器人的指令封装。

http://www.dtcms.com/a/265851.html

相关文章:

  • Java连接阿里云MaxCompute例
  • Qt宝藏库:20+实用开源项目合集
  • NV133NV137美光固态闪存NV147NV148
  • Git协作开发:feature分支、拉取最新并合并
  • 这才叫窗口查询!TDEngine官方文档没讲透的实战玩法
  • ModbusRTU转Profinet网关在工业自动化中的应用与价值
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DragNDrop(拖拽占用组件)
  • 力扣 hot100 Day33
  • 快速搭建大模型web对话环境指南(open-webUI)
  • 双向链表的实现
  • [创业之路-468]:企业经营层 - 使用“市场-需求-竞争”三维模型筛选细分市场(市场维度、客户需求维度、竞争维度)
  • JavaEE-Linux环境部署
  • Java 核心技术与框架实战十八问
  • 专题:2025即时零售与各类人群消费行为洞察报告|附400+份报告PDF、原数据表汇总下载
  • 模拟IC设计提高系列6-Library导入与新建Library
  • 微信小程序41~50
  • 区块链(私有链搭建和实现)
  • 【C++】访问者模式
  • PHP语法基础篇(八):超全局变量
  • 鸿蒙应用开发:从网络获取数据
  • UE5中的AnimNotify
  • KDD 2025 | 地理定位中的群体智能:一个多智能体大型视觉语言模型协同框架
  • rabbitmq 与 Erlang 的版本对照表 win10 安装方法
  • SPLADE 在稀疏向量搜索中的原理与应用详解
  • MCP 传输机制(Streamable HTTP)
  • 多线程知识
  • 21、MQ常见问题梳理
  • 映射阿里云OSS(对象存储服务)
  • [创业之路-467]:企业经营层 - 《营销管理》的主要内容、核心思想以及对创业者的启示
  • 【Spring boot】tomcat Jetty Undertow对比,以及应用场景