登录
|
注册
|
QQ账号登录
|
常见问题
联系我们:
我要上传
首页
浏览
幼儿/小学教育
中学教育
高等教育
研究生考试
外语学习
资格/认证考试
论文
IT计算机
经济/贸易/财会
管理/人力资源
建筑/环境
汽车/机械/制造
研究报告
办公文档
生活休闲
金融/股票/期货
法律/法学
通信/电子
医学/心理学
行业资料
文学/艺术/军事/历史
我的淘豆
我要上传
帮助中心
复制
下载此文档
headfirst设计模式读书总结——命令模式.doc
文档分类:
IT计算机
|
页数:约16页
举报非法文档有奖
分享到:
1
/
16
下载此文档
搜索
下载此文档
关闭预览
下载提示
1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
2.下载该文档所得收入归上传者、原创者。
3.下载的文档,不会出现我们的网址水印。
同意并开始全文预览
(约 1-6 秒)
下载文档到电脑,查找使用更方便
下 载
还剩?页未读,
继续阅读
分享到:
1
/
16
下载此文档
文档列表
文档介绍
headfirst设计模式读书总结——命令模式.doc
headfirst设计模式读书总结——命令模式
在本章,我们将把封装带到一个全新的境界:把方法调用(method invocation)封装起来。通过封装发发调用,我们可以把运算块包装成形。所以调用此运算的对象不需要关心事情是如何进行的。只要知道如何使用包装成形的方法来完成它就可以。通过封装方法调用,也可以做一些很聪明的事情,例如记录日志,或者重复使用这些封装来实现撤销(undo)。
题例:家电自动化
设计一个家电自动化遥控器的API。这个遥控器具有七个可编程的插槽,每个插槽都有对应的开关按钮,这个遥控器还具备一个整体的撤销按钮。希望你能够创建一组控制遥控器的API,让每个插槽都能够控制一个或一组装置,能够控制目前的装置和任何未来可能出现的装置,这一点很重要。(这里有一组Java类,这些类时由多个厂商开发出来的,用来控制家电自动化装置,例如点灯,风扇,热水器,音响设备和其他类似的可控制装置。)上面是很多的厂商类,看不清不要紧。你只要知道它很多,控制各种电器。
有许多类都具备on()和off()方法,除外还有其他的一些方法。
遥控器应该知道如何解读按钮被按下的动作,然后发出正确的请求,但是遥控器不需要知道这些家电自动化的细节,或者如何打开热水器。
提示:命令模式可将“动作的请求者”从“动作的执行者”对象中解耦,在我们的题例中,请求者是遥控器,而执行者对象就是厂商类。利用命令对象,把请求(打开点灯)封装成一个特定对象(客厅点灯对象),如果对每个按钮都存一个命令对象,那么当按钮被按下的时候,就可以请命令对象做相关的工作,遥控器并不需要知道工作内容是什么,只要有个命令对象能和正确的对象沟通,把事情做好久可以了。
命令模式的简单介绍
(如果你已经理解命令模式可以不看下面的例子)
餐厅解析:研究顾客,女招待,订单,以及快餐厨师之间的交互。
1:你,也就是顾客,把订单交个女招待。
2:女招待拿了订单放在订单柜台,然后喊了一声“订单来了”。
3:快餐厨师根据订单准备餐点。
让我们更详细地研究这个交互
顾客知道自己要吃什么,并创建了一张订单createOrder(),订单包含一个订单表格,顾客订购的餐点项目写在上面。女招待拿走了订单tekeOrder(),放在订单柜台,然后调用orderUp()方法,通知厨师准备餐点。订单上有所有准备餐点是只是,知道厨师用类似makeBurger()这样的方法来烹饪。开餐厨师准备餐点。output()。
餐厅的角色和职责
一张订单封装了准备餐点的请求。
把订单想象成一个用来请求准备餐点的对象,和一般的对象一样,订单对象可以被传递:从女招待传递到订单柜台,或者从女赵丹传递到阶梯下一班的女找到,订单的接口只包含一个方法就是orderUp()。这个方法封装了准备从哪点所需的动作。订单内有一个到
“需要进行准备工作的对象”(也就是厨师)的引用。这一切都被疯转起来,所以女招待不需要知道订单上有什么,也不需要知道是谁来准备餐点。
女招待的工作是接收订单,然后调用订单的orderUp()方法。
女招待其实不必担心订单的内容是什么,或者由谁来准备餐点,她只需要知道,订单有一个orderUp()方法可以调用,这就够了。
快餐厨师具备准备餐点的知识。
快餐厨师是一种对象,他真正知道如何准备餐点,一旦女找到调用orderUp()方法,快餐厨师就接手,实现需要创建餐点的所有方法,女找到和厨师之间是彻底的解耦,女招待的订单封装了餐点的细节,厨师只要调用每个订单的方法即可。
把采纳定想着一种设计模式的一种模型,而这个模型允许将“发出请求的对象”和“接收与执行这些请求的队形”分隔开来,对于遥控器API,我们需要分隔开“发送请求的按钮”和“执行请求的厂商特定对象”。
第一个命令对象
实现命令接口
首先,让所有的命令对象实现相同的包含一个方法的接口,在餐厅的例子中,我们称此方法为orderUp(),然而,现在改为一般惯用的名称execute()。
interface Command{
public void execute();
}
实现一个打开点灯的命令
建设想实现一个打开点灯的命令,根据厂商提供的类,Light有两个方法:on()和off()。
class LightOnCommand implements Command{
Light light;
public LightOnCommand(Light light){
=light;
}
***@Override
public void execute() {
light
headfirst设计模式读书总结——命令模式 来自淘豆网m.daumloan.com转载请标明出处.
猜你喜欢
2025年英语大赛自我介绍(精选20篇)
26页
2025年6月份马来西亚适合带孩子去的景点有哪些..
3页
2025年英语作文:雅典奥运会-刘翔(精选24篇)..
29页
2025年房地产开发企业所得税处理新旧对照表汇..
19页
2025年4S客服自我鉴定怎么写
4页
2025年英语作业介绍信(整理18篇)
27页
2025年房地产售偻人员培训教程
36页
2025年英语b级作文求职信(锦集16篇)
69页
2025年2023年通用雨优美句子75句
7页
2025年2023年通用悲伤的句子集锦70句
5页
2025年英文简历写作句子(推荐10篇)
25页
2025年英文版离职申请书(共13篇)
36页
2025年2023年经典心灵鸡汤励志语录汇编77句
8页
2025年2023年经典伤感个性句子46条
4页
2025年2023年精选张小娴的语录大集合56条
5页
相关文档
更多>>
非法内容举报中心
文档信息
页数
:
16
收藏数
:
0
收藏
顶次数
:
0
顶
上传人
:
学习的一点
文件大小
:
49 KB
时间
:
2021-07-25
相关标签
设计模式总结
b2b模式总结
模电公式总结
设计模式面试题
商业模式计划书
软件设计模式论文
商业模式设计方案
java设计模式面试题
建设管理模式
商业模式
计算机原理
PHP资料
linux/Unix相关
C/C++资料
Java
.NET
windows相关
开发文档
管理信息系统
软件工程
网络信息安全
网络与通信
图形图像
行业软件
人工智能
多媒体
软件测试
计算机硬件与维护
网站策划/UE
网页设计/UI
网吧管理
电子支付
搜索引擎优化
服务器
电子商务
Visual Basic
数据挖掘与模式识别
数据库
Web服务
网络资源
Delphi/Perl
Python
CSS/Script
Flash/Flex
手机开发
UML理论/建模
并行计算/云计算
嵌入式开发
计算机应用/办公自动化
数据结构与算法
SEO
最近更新
2025年普法学法知识竞赛题库含答案(最新)..
2025年土地登记代理人之土地登记相关法律知..
2025年普法学法知识竞赛题库带答案(黄金题..
2025年普法学法知识竞赛题库(夺冠系列)
2025年机械员考试题库【培优b卷】
关于环境统计数据的分析与思考
2025年机械员考试题库及参考答案(模拟题)..
2025年机械员考试题库有完整答案
2025年机械员考试题库及参考答案【预热题】..
2025年机械员考试题库(夺冠)
2025年普法学法知识竞赛题库(夺冠系列)
医护工作人员工作计划
2025年施工工艺
实习心得体会范例精选集
2025年机械员考试题库附参考答案【实用】
2025年机械员考试题库含答案(能力提升)
2025年机械员考试题库新版
2025年汽车维修工技能理论考试题库及完整答..
学校开展“五四”青年节主题系列活动总结
2025年汽车维修工技能理论考试题库附参考答..
关于我国贫富差距的若干思考
大学生支教个人心得体会
电力工程输配电中的自动化技术分析-第1篇
2023-2024学年山东省东营市统编版(五四制)..
重庆市2024年中考数学试卷(AB合卷)( 附答..
部编版四年级下册道德与法治单元教学计划
葡萄酒文化与品鉴教案
湘美版五年级美术下册全册ppt课件
春季综合教研组工作参考计划范文
中学语文—B3探究型学习活动设计—活动设计..
在线
客服
微信
客服
意见
反馈
手机
查看
返回
顶部