2022年设计模式之command模式和state模式,调停者模式,门面模式文件 .pdf
《2022年设计模式之command模式和state模式,调停者模式,门面模式文件 .pdf》由会员分享,可在线阅读,更多相关《2022年设计模式之command模式和state模式,调停者模式,门面模式文件 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1. Command 模式: 简单来说就是每一个请求过来,都有一个事物去处理。在最初的设计模式书当中,command 模式最主要的功能是用来实现undo(撤销)功能的。首先是抽象类Command:package mand; /提供一个抽象类来规定方法的名称为execute和undopublicabstractclass Command publicabstractvoid execute(); publicabstractvoid unDo(); 两个具体的类的实现:HugCommand 和 ShoppingCommand package mand; publicclass HugComman
2、d extends Command /都实现抽象类 command 当中的两个方法。execute()和 undo ()Overridepublicvoid execute() System.out .println(hug); Overridepublicvoid unDo() System.out .println(open your arms); package mand; publicclass ShoppingCommand extends Command /都实现抽象类 command 当中的两个方法。execute()和 undo ()Overridepublicvoid exe
3、cute() System.out .println(zoo); Override名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - publicvoid unDo() System.out .println(undo zoo); 命令者类:当有 order方法,其中调用了被命令者(boy )的 addCommand方法, 用来给 boy 添加任务:各种 command 。package mand; publicclass MM p
4、rivate String name ; public String getName() returnname ; publicvoid setName(String name) this. name = name; /在order当中可以有多个command , c1,c2.publicvoid order(Boy b) Command c1 = new ShoppingCommand(); /调用了 boy 当中的 addCommand 方法,把 c1 ,c2 都添加到他的arraylist当中去b.addCommand(c1); Command c2 = new HugCommand()
5、; b.addCommand(c2); b.executeCommands(); 被命令者类:package mand; import java.util.ArrayList; import java.util.List; publicclass Boy private String name ; /用一个 arraylist来存放命令列表private Listcommands = new ArrayList(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页
6、 - - - - - - - - - public String getName() returnname ; publicvoid setName(String name) this. name = name; publicvoid pursue(MM mm) publicvoid doSomeThing() /boy提供一个方法,把命令添加到boy 的arraylist当中publicvoid addCommand(Command c1) this. commands .add(c1); /把commands 里面所有的命令拿出来,每个都执行。publicvoid executeComma
7、nds() for(Command c : commands ) c.execute(); /undo的时候,要用另外一个list来记录, boy 已经执行了哪些command 。/在undo 的时候,就根据堆栈的方式,一条一条的undo 。/使用堆栈的理由,就是要先把最后命令undo ,然后再返回去。publicvoid undoCommands() / 思想:1.给出一个抽象类或接口,把command 需要方法准备好。2.给出几个不同的具体实现,各种不同的command。3.命令者当中,给被命令者添加command,并可以要求被命令者执行。4.被命令者有个arraylist,用来存放需要执
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年设计模式之command模式和state模式 调停者模式 门面模式文件 2022 设计 模式 command state 调停 门面 文件
限制150内