Skip to content

命令(Command)模式 行为型模式

更新: 2023-05-24 11:11:27   字数: 0 字   时长: 0 分钟

将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。

c#
// 命令模式示例
using System;

// 定义一个命令接口,包含一个执行方法
public interface ICommand
{
    void Execute();
}

// 定义一个具体命令类,实现ICommand接口
public class ConcreteCommand : ICommand
{
    private Receiver receiver;

    public ConcreteCommand(Receiver receiver)
    {
        this.receiver = receiver;
    }

    public void Execute()
    {
        receiver.Action();
    }
}

// 定义一个接收者类,包含一个具体的操作方法
public class Receiver
{
    public void Action()
    {
        Console.WriteLine("执行操作");
    }
}

// 定义一个调用者类,包含一个命令对象
public class Invoker
{
    private ICommand command;

    public void SetCommand(ICommand command)
    {
        this.command = command;
    }

    public void ExecuteCommand()
    {
        command.Execute();
    }
}

class Program
{
    static void Main(string[] args)
    {
        // 创建一个接收者对象
        Receiver receiver = new Receiver();
        // 创建一个具体命令对象,将接收者对象传入
        ConcreteCommand command = new ConcreteCommand(receiver);
        // 创建一个调用者对象,将具体命令对象传入
        Invoker invoker = new Invoker();
        invoker.SetCommand(command);
        // 执行命令
        invoker.ExecuteCommand();

        Console.ReadKey();
    }
}
你觉得这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度