C# 命令模式实现与运行示例

林舟
林舟
发布时间:2026-10-13 | 4人浏览过
原创

本文展示 C# 命令模式的完整代码实现,涵盖核心组件与执行流程,解析如何通过封装操作请求实现解耦。

C# 命令模式结构与实现

命令模式是一种行为设计模式,它将请求封装为对象,从而使用户可以参数化其他对象作为请求的参数。在 C# 实现中,通常涉及四个关键角色:抽象命令(Command)、具体命令(ConcreteCommand)、接收者(Receiver)和调用者(Invoker)。

第1步:定义核心类结构

首先定义接收者类 Receiver,它负责实际执行业务逻辑。接着创建抽象命令基类 Command,声明 Execute 方法并持有对 Receiver 的引用。随后实现具体命令 ConcreteCommand,将具体的业务动作关联到接收者。最后构建 Invoker 类,用于发起或存储命令。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 命令模式
{
  class Program
  {
    static void Main(string[] args)
    {
      // 创建接收者对象
      Receiver r = new Receiver();
      // 创建具体命令,关联接收者
      Command c = new ConcreteCommand(r);
      // 创建调用者
      Invoker i = new Invoker();
      
      // 设置命令
      i.SetCommand(c);
      // 执行命令
      i.ExectueCommand();
    }

    // 抽象命令类
    public abstract class Command
    {
      private Receiver receiver;
      internal Receiver Receiver
      {
        get { return receiver; }
        set { receiver = value; }
      }
      public Command(Receiver receiver)
      {
        this.receiver = receiver;
      }
      public abstract void Execute();
    }

    // 接收者类
    public class Receiver
    {
      public void Action()
      {
        Console.WriteLine("取得receiver的action方法!");
      }
    }

    // 具体命令类
    public class ConcreteCommand : Command
    {
      public ConcreteCommand(Receiver receiver) : base(receiver) { }
      public override void Execute()
      {
        Receiver.Action();
      }
    }

    // 调用者类
    public class Invoker
    {
      private Command command;
      internal Command Command
      {
        get { return command; }
        set { command = value; }
      }
      public void SetCommand(Command command)
      {
        this.command = command;
      }
      public void ExectueCommand()
      {
        command.Execute();
      }
    }
  }
}

第2步:运行与结果分析

将上述代码编译并运行后,控制台会输出以下结果:

取得receiver的action方法!

此过程清晰地展示了 Main 方法中如何装配各个对象:Invoker 并不直接知道业务逻辑的细节,它仅通过 Command 接口执行操作。这种设计使得新增不同的具体命令时,无需修改现有的调用逻辑,符合开闭原则。

总结

以上就是 C# 命令模式实现与运行示例的详细内容,更多关于 C# 设计模式运用实践的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表