设计模式学习-命令模式

ops/2024/10/19 3:25:38/
概念

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

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.ppmy.cn/ops/105079.html

相关文章

PHP一键创建全球参与探索现代在线投票系统

一键创建全球参与探索现代在线投票系统 🌐✨ 🚀 开篇:解锁全球互动新纪元 在这个数字化飞速发展的时代,每一个声音都值得被听见,每一份意见都能跨越山海相连。想象一下,只需轻轻一点,就能发起…

sqlite3的db.interrupt方法深入解析

在Node.js环境中,sqlite3库是一个广受欢迎的轻量级数据库库,它为开发者提供了一个简洁的API来与SQLite数据库进行交互。在处理长时间运行或复杂的数据库查询时,有时可能需要中断这些查询。sqlite3库提供了db.interrupt方法来实现这一功能。本…

集合及映射

1、集合类图 1)ArrayList与LinkedList 区别 LinkedList 实现了双向队列的接口,对于数据的插入速度较快,只需要修改前后的指向即可;ArrayList对于特定位置插入数据,需要移动特定位置后面的数据,有额外开销 …

HTML静态网页成品作业(HTML+CSS)——动漫樱桃小丸子网页(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…

日常实习【面试记录】

快手一面【日常实习】 base: 北京 岗位:客户端开发-ios 时间: 2024/9/2 上午 11点 文章目录 快手一面【日常实习】操作系统 :进程和线程的区别 计网:1. 网络协议有哪些?2. TCP和UDP在哪一层&#xff1f…

为什么使用雪花算法,有什么优缺点,如何解决?为什么不使用UUID的方法,如何解决系统回拨的问题?

为什么使用雪花算法,有什么优缺点,如何解决?为什么不使用UUID的方法,如何解决系统回拨的问题? 生成的id应该满足下面的条件: 首先是全局唯一,不能出现重复的ID之后是总体应该是递增的&#xf…

BRD是什么,产品经理怎么写BRD文档

在产品开发的浩渺征程中,BRD 文档犹如一座明亮的灯塔,为产品的航向指引方向。那么,BRD 文档究竟是什么?产品经理又该如何写好这份至关重要的文档呢?(文章末尾附三个BRD成功案例) 一、BRD 文档是…

Git版本控制策略:Rebase还是Merge?详解优缺点与适用场景

在团队合作中,如何高效地管理代码版本和保持主干代码的稳定性,常常是开发团队关注的焦点。在使用Git管理代码的常规操作中,Merge是最常见的操作,此外Rebase也是一种很实用的操作,尤其是我们想要保持更干净的提交历史时…