Java设计模式_hly.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java设计模式_hly

设计模式 Command模式 一、Command模式的适用场合: 二、Command模式的经典应用: 三、Command模式的简单例子: 三、Command模式的简单例子: 三、Command模式的简单例子: 三、Command模式的简单例子: 三、Command模式的简单例子: 三、Command模式的简单例子: 三、Command模式的简单例子: 四、Command模式的特点: 五、Command调用的顺序: 六、Command模式和其它模式的结合: Observer模式 Observer模式 Observer模式 Observer模式 Observer模式 Observer模式 Observer模式 Observer模式 Observer模式 Observer模式 Observer模式 讨论与交流 设计模式总结-Command模式 ? --摘自《Java设计模式》第24章:Command(命令)模式 二、Command模式的经典应用: Command模式的经典应用就是菜单命令。如何安排才能让一个类在用户单击菜单的时候调用对应的方法呢?解决的方法就是应用多态性,具体做法如下:首先将操作的名称固定,然后针对不同的类给出不同的实现。 ? --摘自《Java设计模式》第24章:Command(命令)模式 三、Command模式的简单例子: 参见/designpatterns/command.htm 四、Command模式的特点: ·有一个顶层的接口,用于表示“执行命令”这个抽象动作,其次该方法中往往会含有用于区分请求类型的形参 ·有一至多个实现类,每个实现类实现了接口中“执行命令”这个抽象方法,提供具体的实现 ·有一个用来装载、保存命令执行类的容器对象,负责加载、初始化、查找、调用内部的各个命令对象 ? 五、Command调用的顺序: ·初始化命令队列,装载各个命令对象(Command接口的实现类) ·接收事件/请求,将其作为参数传递给命令队列 ·命令队列在自己内部查找合适的处理者,调用接口实现方法处理请求 六、Command模式和其它模式的结合: ·Command模式和Memento模式结合,实现“撤销”操作: ???这一点需要和“备忘录模式”配合,每执行一个操作之前,先保存当前的状态 * * Command模式定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。 将“动作的请求者”从“动作的执行者”对象解耦 将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。 让方法运行最常见的方式是调用之,但是在很多情况下,我们不能控制和提供方法执行的上下文和时机。这种情况下,可以把方法封装在对象中。通过在对象中存储调用方法所需的信息,就可以让客户端或者服务决定何时调用这个方法。 Command模式的意图是把请求封装在对象中。 Command模式的经典应用就是菜单命令。如何安排才能让一个类在用户单击菜单的时候调用对应的方法呢?解决的方法就是应用多态性,具体做法如下:首先将操作的名称固定,然后针对不同的类给出不同的实现。 public interface Command { public abstract void execute(); } class Fan { public void startRotate() { System.out.println(Fan is rotating); } public void stopRotate() { System.out.println(Fan is not rotating); } } class Light { public void turnOn() { System.out.println(Light is on); } public void turnOff() { System.out.println(Light is off); } } class Switch { private Command UpCommand, DownCommand; public Switch(Command Up, Command Down) { UpCommand = Up; DownCommand = Down; } void flipUp() { UpCommand.execute(); } void flipDown() { DownCommand.execute(); } } class LightOnCommand implements Command { private Light myLight; p

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档