- 19
- 0
- 约6.25千字
- 约 30页
- 2017-04-09 发布于江苏
- 举报
设计模式命令模式(Command)
设计模式(Design Pattern)
张凯 副教授
计算机学院 软件工程系
问题(Problem)
路边摊VS餐厅
问题(Problem)
路边摊VS餐厅
问题(Problem)
路边摊VS餐厅
老板,我这有两串,少了一串!
老板,我的三串应该是不辣的啊!
老板,我先付的钱,你怎么给她了?
老板,这串还不熟啊,再烤一下!
老板,我在这等了半天,钱都给了,你不理我,我不要了,退钱!
问题(Problem)
去烧烤店吃烧烤, 如果客人直接和烧烤的伙计打交道, 则烧烤的伙计将直接面对各种各样的客户各种各样的需求,各种各样的口味, 而且有的客人会因为等不及而走掉,但是伙计却不知道......最后烧烤伙计手忙脚乱.
问题(Problem)
那么,我们增加一个服务员,负责接待客户,那么客人将向服务员点菜;服务员手中拿着烧烤订单纸,客人只要把自己想要的东西写上,并注明需要的口味,服务员需按客人点餐的顺序把订单放在烧烤伙计的窗台上;
如果有客人退单了,那么她只需要把订单抽掉就行了;
烧烤伙计则只需要看订单安心做烧烤就行了.
问题(Problem)
主要内容
命令模式(Command)
模式动机
模式名称:命令模式(Command)
在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。
命令模式(Command)
模式定义
命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。
命令模式(Command)
模式结构
命令模式(Command)
参与者
Command: 抽象命令类
ConcreteCommand: 具体命令类
Invoker: 调用者
Receiver: 接收者
Client:客户类
命令模式(Command)
//烤肉串者
public class Barbecuer
{
public void BakeMutton()
{
Console.WriteLine(烤羊肉串!);
}
public void BakeChickenWing()
{
Console.WriteLine(烤鸡翅!);
}
}
命令模式(Command)
//抽象命令
public abstract class Command
{
protected Barbecuer receiver;
public Command(Barbecuer receiver)
{
this.receiver = receiver;
}
//执行命令
abstract public void ExcuteCommand();
}
//烤羊肉串命令
class BakeMuttonCommand : Command
{
public BakeMuttonCommand(Barbecuer receiver) : base(receiver)
{ }
public override void ExcuteCommand()
{
receiver.BakeMutton();
}
}
命令模式(Command)
//服务员
public class Waiter
{
private Command command;
//设置订单
public void SetOrder(Command command)
{
mand = command;
}
//通知执行
public void Notify()
{
command.ExcuteCommand();
}
}
您可能关注的文档
最近下载
- 常州大学《大学英语一》2024-----2025学年期末试卷(A卷).pdf VIP
- 艾米克变频器AMK3100中文说明书使用手册.pdf
- 必背古诗词75首(可打印) .pdf VIP
- 某知名汽车维修企业员工手册范本.docx VIP
- 2025年二建水利b证考试真题及答案.docx
- 安全驾驶教育培训课件.ppt VIP
- 汽车维修车间员工职责手册.docx VIP
- 黑龙江省哈尔滨市第三中学校2025-2026学年高二上学期9月月考物理试卷.docx VIP
- 初中语文名著导读--《骆驼祥子》知识点总结归纳.docx VIP
- 实施指南(2025)《DAT 22-2015 归档文件整理规则》.pptx VIP
原创力文档

文档评论(0)