`
txf2004
  • 浏览: 7041693 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

从“在快餐店吃饭”到Command模式(二)

阅读更多
附一个简单的实现代码:
下面的表格是对应这个例子所涉及到的类跟方法对应到命令模式的标准名称:
Waitress(服务员)
invoker
Short Order Cook(厨师)
Receiver
orderUp(找厨师)
execute()
Order(菜单,还没经过处理的)
Command
Customer(顾客)
Client
takeOrder(从顾客那拿原始菜单)
setCommand()
典型的Command模式需要有一个接口.接口中有一个统一的方法,这就是"将命令/请求封装为对象"(在这里为了更好地理解这个实现生活中的例子,我没有使用标准的命令模式中的那些对象名方法名,大家可以按照上面的表格找到对应的标准名称)
public interface Order {
  public abstract void orderUp ( );
}

具体不同命令/请求代码是实现接口Command,为了简单化下面只有一个具体命令,也就是说服务员这时候只接触一个顾客,注意在这里的OrderSlip是服务员把从顾客那拿到的原始菜单经过菜单处理柜台处理之后的菜单(OrderSlip),对于这一点大家慢慢体会下很容易想到怎么跟命令模式中的具体命令角色对应上的
public class OrderSlip implements Order {
public
Cook cook;
//构造函数被传进一个具体的厨师来做顾客的所点的东西,当orderUp被//调用时,厨师将作为这个请求的接受者。
public OrderSlip(Cook cook){
this.cook=cook;
}
// orderUp方法调用命令接受者的方法cookmakeBurger, cookmakeShake
public void orderUp ( ) {
 cook.cookmakeBurger();//让一个厨师做Burger
cook.cookmakeShake();//让一个厨师做Shake
  }
}
}
Cook
cookmakeBurger():void
cookmakeShake():void
服务员使用这个菜单,完成她的任务(命令对象)
public class Waitress {
Order order;
public Waitress(){}
public void takeOrder (Order orderslip){//这里对应前面表格中的标准的
//命令模式中的setOrder()
order= orderslip;
}
  public void fireOrder ( ){//注意,前面我们提到了服务员知道所有的
//菜单都支持orderUp()这个方法而且她可以在需要准备一个饭菜的任何
//时候来调用这个方法。
order. orderUp();
}
}
顾客所做的:
public class Customer {
public static void main(String []args){
Waitress waitress=new Waitress();//顾客叫来了一个服务员
Cookcook=new Cook();//因为顾客是通过服务员简接地请求厨师为他//做吃的
OrderSlip orderslip=new OrderSlip(cook);//顾客叫了一个菜单
waitress.takeOrder(orderslip);//服务员拿到经过处理后的菜单
waitress.fireOrder();//需要准备一个饭菜的任何时候到了
}
}
分享到:
评论

相关推荐

    CAD快餐店平面图快餐店平面图

    快餐店平面图快餐店平面图快餐店平面图快餐店平面图快餐店平面图

    Flexsim快餐店仿真案列

    这个"Flexsim快餐店仿真案列"提供了一个实际场景,帮助我们理解如何利用Flexsim来优化快餐店的运营流程。 首先,我们需要了解Flexsim的核心概念。它采用可视化编程的方式,用户可以通过拖拽组件、设置参数来构建...

    美萍快餐店管理标准版

    《美萍快餐店管理标准版》是一款专为快餐店设计的高效管理软件,旨在帮助店主优化日常运营,提升服务质量,减少管理成本。该软件以其实用性和便利性深受用户喜爱,适用于多个快餐店的日常运营场景。 一、系统功能...

    中南民大数据结构课设_最短路径快餐店.zip

    标题 "中南民大数据结构课设_最短路径快餐店.zip" 涉及到一个大学数据结构课程设计项目,其核心目标是寻找最短路径问题。在这个项目中,学生利用编程语言C++来实现迪杰斯特拉(Dijkstra)算法,这是一种用于查找图中...

    XXX快餐店库存管理系统的设计与实现

    《XXX快餐店库存管理系统的设计与实现》 在现代餐饮行业中,有效的库存管理是提升运营效率、降低成本的关键。XXX快餐店的库存管理系统就是这样一个专门针对快餐店业务需求设计的解决方案。该系统采用先进的信息技术...

    美萍快餐店管理系统 2014 v2.zip

    美萍快餐管理系统是一款专业的快餐店管理软件,美萍快餐软件专为餐饮行业中先交钱后消费经营模式而特别定制,解决了餐饮管理软件中对快餐行业管理的难题。 软件界面简洁优美,操作直观简单,无需专门培训即可使用。...

    快餐店管理系统. 快餐店管理软件 快餐店收银管理

    快餐店管理系统. 快餐店管理软件 快餐店收银管理

    数据库课程设计-快餐店管理系统

    在本次数据库课程设计中,我们构建了一个快餐店管理系统,它利用了Mysql数据库的强大功能和Java编程语言的灵活性,旨在提供一个用户友好、功能完备的解决方案,以提升快餐店的运营效率。这个系统不仅包括了开发文档...

    快餐店3D餐厅展示模型

    在本案例中,“快餐店3D餐厅展示模型”是专为快餐店设计的三维模型,用于模拟和展示餐厅的实际布局、装饰风格以及环境效果。 3D模型的设计过程通常包括以下几个关键步骤: 1. **建模**:这是创建3D模型的第一步,...

    快餐店管理系统

    《快餐店管理系统全面解析》 在当今餐饮业竞争激烈的市场环境下,有效的管理是提升效率、降低成本的关键。"快餐店管理系统"作为一个专为餐饮行业设计的软件解决方案,它以绿色、高效为特点,不仅适用于快餐店,还...

    美萍快餐店管理系统v3.5

    美萍快餐管理系统是一款专业的快餐店管理软件,美萍快餐软件专为餐饮行业中先交钱后消费经营模式而特别定制,解决了餐饮管理软件中对快餐行业管理的难题。软件界面简洁优美,操作直观简单,无需专门培训即可使用。...

    AHK快餐店_懒人包

    本教程包括三部分内容 1.教程——AHK 快餐店.chm 2.开发工具——SciTE.exe 3.一系列已经写好的autohotkey脚本例子——文中脚本

    美国各地的快餐店数据集 CSV 1K+记录(Fast Food Restaurants Across America)

    4. **纬度和经度坐标**:地理坐标允许我们对数据进行空间分析,比如通过热力图显示快餐店在地理上的聚集程度,或者计算两个快餐店之间的距离。 5. **其他可能的字段**:除了上述基本字段,数据集还可能包含其他信息...

    2021年度快餐店行业人力资源效能分析报告(市场招聘用工).pdf

    本报告从快餐店行业的视角出发,全面分析了人力资源效能、招聘状况、人力成本等多个维度,为行业内部及外部相关决策者提供了宝贵的数据支持与决策参考。以下是报告的详细知识点总结: 一、快餐店行业企业情况分析...

    (免费)快餐店管理系统

    在技术实现上,"mpkcdsetup.exe" 文件很可能是系统的安装程序,它包含了快餐店管理系统的所有组件和依赖,用户可以通过执行这个文件在电脑上安装该系统。"说明_Readme.html" 文件则通常包含软件的使用指南、版本信息...

    快餐店行业(2021-2026)企业市场突围战略分析与建议.docx

    在瞬息万变的商业环境中,快餐店行业面临着激烈的市场竞争。为了在2021年至2026年间实现市场突围,企业必须采取一系列精心策划的战略。本报告将深入探讨如何通过战略创新和市场定位来提升竞争力,以及如何利用科技...

    美萍快餐店管理系统

    《美萍快餐店管理系统详解与应用指南》 美萍快餐店管理系统是一款专为快餐行业设计的专业管理软件,它集成了点餐、收银、库存、会员管理等多种功能,旨在提升快餐店的运营效率,降低管理成本,提升服务质量。在这款...

    快餐店员工手册餐饮资料大全2021餐饮资料2021.doc

    【快餐店员工手册】是餐饮行业中一份重要的管理资料,它涵盖了店面管理的多个方面,旨在提升服务质量、确保食品安全以及维护良好的客户关系。手册中的内容详细规定了员工在工作中的行为准则和服务规范,以下是对其中...

    sql server 2005 小型快餐店.数据库系统.mdf

    - 恢复模式:了解简单、完整和大容量日志这三种恢复模式,以便选择最适合快餐店业务需求的模式。 5. 性能优化 - 索引:通过创建索引,可以加快查询速度。在快餐店数据库中,可能在频繁查询的字段上建立索引。 - ...

Global site tag (gtag.js) - Google Analytics