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

设计模式学习-命令模式

概念

命令,接收者,执行者,一个命令模式由这些基本的组件组成。
接收者 会有一个函数
命令有一个持有接收者并且 有一个 执行函数
执行者 持有一个命令 并且 会执行这个命令

using UnityEngine;
using System.Collections;
namespace CommondStructure{
public class CommandStructre: MonoBehaviour{
	Receiver receiver = new Receiver();
	ConcreteCommand command = new ConcreteCommand(receiver);
	Invoker invoker = new Invoker();
	
	invoker.SetCommand(command);
	invoker.InvokeCommand ();
}

abstract class Command{
	protected Receiver receiver;
	public Command(Receiver receiver){
		this.receiver = receiver;
	}
	public abstract void Execute();
}
public class ConcreteCommand:Command{
	public ConcreteCommand(Receiver receiver):base(receiver){}
	public override void Execute(){
		receiver.Action();
	}
}

class Receiver{
	public void Action(){
		Debug.Log("我被执行了");
	}
}	
class Invoker{
	private Command_command;
	public void SetCommond(Command command){
		this._command= command;
	}
	public void InvokeCommand (){
		_command.Execute();
	}
}
}

主旨:接收者 是存在需要执行的函数,命令只负责进行桥接
执行者 根据命令执行接收到到命令的接收者的方法


http://www.kler.cn/a/293483.html

相关文章:

  • jenkins提交gitee后自动部署
  • 链游系统定制化开发:引领游戏产业的新时代
  • 小面馆叫号取餐流程 佳易王面馆米线店点餐叫号管理系统操作教程
  • Springboot整合Prometheus+grafana实现系统监控
  • WPF中MVVM工具包 CommunityToolkit.Mvvm
  • ORA-01092 ORA-14695 ORA-38301
  • HTTP 方法
  • Redis 的内存淘汰策略详解
  • 电机驱动及编码器测速(基于STM32F103C8T6HAL库)
  • ARM32开发——GD32F4 DMA功能查询
  • windows手工杀毒-寻找可疑进程之线程
  • 如何在Selenium中使用Chrome DevTools进行交互
  • python的sqlalchemy使用@contextmanager来定义上下文管理器
  • shell脚本编程(正则表达式与grep +awk+sed+expect详解)
  • OpenCV中的颜色映射函数
  • [pytorch] --- pytorch基础之损失函数与反向传播
  • VUE3父子组件传参
  • Requests库对session的支持
  • PHP 项目流水线部署与错误问题解决
  • U盘数据危机应对:详解文件或目录损坏无法读取的恢复之道
  • SpringMVC启动与请求处理流程解析
  • 将网页保存为PDF---不分页
  • GIT | git提交注释自动添加信息头
  • echarts动态切换数据渲染(vue3 + echarts)
  • 5G移动网络运维实验(训)室解决方案
  • 逻辑回归与线性回归的目标函数和应用场景比较