CSharp设计模式读书笔记(15):命令模式(学习难度:★★★☆☆,使用频率:★★★★☆)

命令模式(Command Pattern):将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。

模式角色与结构:(可以有多个ConcreteCommand,分别保存多个Receiver的引用)

CSharp设计模式读书笔记(15):命令模式(学习难度:★★★☆☆,使用频率:★★★★☆)

示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace CSharp.DesignPattern.CommandPattern
{
class Program
{
static void Main(string[] args)
{
Command command = new ConcreteCommand();
Invoker invoder = new Invoker(command); // 功能键 invoder.Call(); Console.ReadLine();
}
} // 调用者
class Invoker
{
private Command command; // 构造注入
public Invoker(Command command)
{
this.command = command;
} public void Call()
{
command.Execute();
}
} // 抽象命令
abstract class Command
{
public abstract void Execute();
} // 具体命令类
class ConcreteCommand : Command
{
private Receiver receiver; // 维持对请求接收者的引用 public ConcreteCommand()
{
receiver = new Receiver();
} public override void Execute()
{
receiver.Action();
}
} // 接收者类
class Receiver
{
public void Action()
{
Console.WriteLine("Receiver Action...");
}
}
}
上一篇:vue 引入 echarts 图表 并且展示柱状图


下一篇:CSharp设计模式读书笔记(18):中介者模式(学习难度:★★★☆☆,使用频率:★★☆☆☆)