软件设计模式及体系结构之命令模式

前言

在这里插入图片描述

分析

现实生活
相同的开关可以通过不同的电线来控制不同的电器
开关←→请求发送者
电灯←→请求的最终接收者和处理者
开关和电灯之间并不存在直接耦合关系,它们通过电线连接在一起,使用不同的电线可以连接不同的请求接收者

1.命令模式概述

软件开发
按钮←→请求发送者
事件处理类←→请求的最终接收者和处理者
发送者与接收者之间引入了新的命令对象(类似电线),将发送者的请求封装在命令对象中,再通过命令对象来调用接收者的方法
相同的按钮可以对应不同的事件处理类
将请求发送者和接收者完全解耦
发送者与接收者之间没有直接引用关系
发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求

2.命令模式的定义

命令模式:将一个请求封装为一个对象,从而让你可以用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作

3.命令模式的结构

在这里插入图片描述
命令模式包含以下4个角色
Command(抽象命令类)
ConcreteCommand(具体命令类)
Invoker(调用者)
Receiver(接收者)
命令模式的本质是对请求进行封装
一个请求对应于一个命令,将发出命令的责任和执行命令的责任分开
命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求如何被接收、操作是否被执行、何时被执行,以及是怎么被执行的

命令模式的实现

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Guess you like

Origin blog.csdn.net/lpblog/article/details/121722058