命令模式总结
来源:互联网 发布:淘宝商品交易风险保障 编辑:程序博客网 时间:2024/05/01 06:07
命令模式遵循封装变化、针对接口及开闭原则。
命令模式通过提供统一接口,是不同对象的方法调用拥有一致的外观,从而实现执行者的可扩充性。
命令模式主要处理统一访问不同类型对象的需求。
命令模式最主要的缺点是需要额外提供命令类,有时命令类数量也会很庞大。
命令模式简单示例
package commandpattern;public interface Command {/** * 执行功能方法 * * @return 执行成功返回true,否则返回false */boolean execute();/** * 获取命令名称 * * @return */String getCommandName();}
package commandpattern.commands;import commandpattern.Command;import commandpattern.functionality.Init;public class InitCommand implements Command{private String commandName = "初始化命令";@Overridepublic boolean execute() {Init init = new Init();if(init.load()&&init.config()&&init.init()){return true;}return false;}@Overridepublic String getCommandName() {return commandName;}}
package commandpattern.commands;import commandpattern.Command;import commandpattern.functionality.Init;public class ReinitCommand implements Command{private String commondName = "重新初始化信息";@Overridepublic boolean execute() {Init init = new Init();if(init.config()&&init.reinit()){return true;}return false;}@Overridepublic String getCommandName() {return commondName;}}
package commandpattern.functionality;/** * 初始化方法 * 首次初始化需要加载数据,读取配置文件 * 从新加载时只需要读取配置文件 */public class Init {public boolean load(){System.out.println("--加载数据");return true;}public boolean config(){System.out.println("--读取配置文件");return true;}public boolean init(){System.out.println("--初始化角色信息");return true;}public boolean reinit(){System.out.println("--重新初始化角色信息");return true;}}
package commandpattern;import java.util.ArrayList;import java.util.List;/** * 执行器 */public class Executor {//执行命令列表private List<Command> commonds = new ArrayList<Command>();//添加命令public void addCommond(Command commond) {commonds.add(commond);}/** * 执行命令 */public void executeCommands(){for (Command commond : commonds) {if(commond.execute()){System.out.println(commond.getCommandName()+"执行成功");}else{System.out.println(commond.getCommandName()+"执行失败");}}}}
package commandpattern;import commandpattern.commands.InitCommand;import commandpattern.commands.ReinitCommand;public class Test {public static void main(String[] args) {Executor exe = new Executor();exe.addCommond(new InitCommand());exe.addCommond(new ReinitCommand());exe.executeCommands();}}测试结果
--加载数据--读取配置文件--初始化角色信息初始化命令执行成功--读取配置文件--重新初始化角色信息重新初始化信息执行成功
0 0
- 命令链模式总结
- 命令模式总结
- 命令模式总结
- 命令模式总结
- 设计模式学习总结(18) 命令模式
- 设计模式总结之命令模式
- decorator,命令模式与职责链模式的简单总结
- 设计模式总结之Command Pattern(命令模式)
- 设计模式大总结(六):命令模式
- 设计模式学习总结:命令模式(Command)
- 《vim实用技巧》命令总结--如何进入插入模式
- 【模式模式】模式总结
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- Android 深入研究adb
- 微分 积分 时间常数的 限制 和图形
- 普通时间和时间戳
- 面向接口编程详解
- 成为一个合格的DBA(Database Administrator,数据库管理员)
- 命令模式总结
- 响应式布局设置--@media only screen and
- dedecms头部标签(标题,关键词,描述标签)
- ubuntu创建、删除文件及文件夹,强制清空回收站方法
- w3school CSS 教程上
- pat_b_1027 打印沙漏
- ios之让输入键盘隐藏消失的方法/以及系统通知的实现
- android开机启动代码
- mathmatic求两圆交点