代码改变世界

命令模式(Command Pattern)

  Clingingboy  阅读(450)  评论(0编辑  收藏  举报


  using System;
 
   class CommandPattern {
 
     // Command Pattern           Judith Bishop June 2007
     //
     // Uses a single delegate for the single type of commands that the client invokes.
 
     delegate void Invoker ();
     static Invoker Execute, Undo, Redo;
   
     class Command  {
       public Command(Receiver receiver) {  
         Execute = receiver.Action;
         Redo = receiver.Action;
         Undo = receiver.Reverse;
       }
     }
   
     public class Receiver {
       string build, oldbuild;
       string s = "some string ";
     
       public void Action() {
           oldbuild = build;
           build +=s;
           Console.WriteLine("Receiver is adding "+build);
       }
      
       public void Reverse() {
         build = oldbuild;
         Console.WriteLine("Receiver is reverting to "+build);
       }
     }
   
     static void Main() {
       new Command (new Receiver());
       Execute();
       Redo();
       Undo();
       Execute();
       Console.ReadKey();
     }
   }
  /* Output
 Receiver is adding some string 
 Receiver is adding some string some string 
 Receiver is reverting to some string 
 Receiver is adding some string some string
 */
 
 
 
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2009-08-26 Spring.NET学习笔记(6)-基础AOP
点击右上角即可分享
微信分享提示