C# 命令模式实现与运行示例
本文展示 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# 设计模式运用实践的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









