设计模式学习-命令模式

概念

命令,接收者,执行者,一个命令模式由这些基本的组件组成。

接收者 会有一个函数

命令有一个持有接收者并且 有一个 执行函数

执行者 持有一个命令 并且 会执行这个命令

csharp 复制代码
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();
	}
}
}

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

执行者 根据命令执行接收到到命令的接收者的方法

相关推荐
中二病码农不会遇见C++学姐2 分钟前
SRT文件全解析:从“视频对话本”到时间轴字幕格式
学习·srt
新缸中之脑4 分钟前
构建一个论文学习AI助手
人工智能·学习
FPGA小迷弟11 分钟前
FPGA处理图像需要用到的主流接口详解
学习·fpga开发·verilog·fpga·modelsim
好奇龙猫11 分钟前
【日语学习-日语知识点小记-日本語体系構造-JLPT-N2前期阶段-第一阶段(10):単語文法】
学习
Hill_HUIL16 分钟前
学习日志19-不同VLAN间通信(3)-三层交换机
网络·学习
Hill_HUIL17 分钟前
学习日志21-路由概述
学习
知识分享小能手27 分钟前
Oracle 19c入门学习教程,从入门到精通,VC++ + Oracle 实现汽配管理系统(21)
c++·学习·oracle
近津薪荼27 分钟前
优选算法——滑动窗口2(数组模拟哈希表)
c++·学习·算法
星火开发设计31 分钟前
using 关键字:命名空间的使用与注意事项
开发语言·c++·学习·算法·编程·知识
●VON36 分钟前
React Native for OpenHarmony:Pressable —— 构建下一代状态驱动交互的基石
学习·react native·react.js·性能优化·交互·openharmony