您的位置:首页 > 编程语言 > C#

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

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

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



示例代码:

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...");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐