当前位置: 首页 > news >正文

徐州网站外包上海政务服务网

徐州网站外包,上海政务服务网,wordpress模板制作兼职,网页游戏排行榜前十名wangyi目录 定义 几个参数 场景描述 代码示例 参数化设置 命令模式的优点 本质 何时选用 定义 几个参数 Command#xff1a;定义命令的接口。 ConcreteCommand:命令接口的实现对象。但不是真正实现#xff0c;是通过接收者的功能来完成命令要执行的操作 Receiver#x…目录 定义 几个参数 场景描述 代码示例 参数化设置 命令模式的优点 本质  何时选用 定义 几个参数 Command定义命令的接口。 ConcreteCommand:命令接口的实现对象。但不是真正实现是通过接收者的功能来完成命令要执行的操作 Receiver接收者。真正执行命令的对象。任何类都可能成为一个接收者只要它能够实现命令要求实现的相应功能 Invoker要求命令对象执行请求通常持有命令对象。 Client创建具体的命令对象并且设置命令对象的接收者。 场景描述 电脑开机 机箱上的按钮就相当于是命令对象 机箱相当于是Invoker:要求机箱上的按钮执行哪些动作 主板相当于接收者对象真正执行命令的对象 命令对象持有接收者对象就相当于按钮有一条线连接着主板当按钮被按下就通过连接线把命令发出去。 代码示例 定义主板 package day12命令模式;/*** 主板的接口*/ public interface ZhuBanApi {/*** 定义一个功能开机*/public void open(); }定义实现定义两个一个是技嘉主板一个是微星主板现在将实现写为一样 不同的主板对同一个命令的操作可以是不同的 技嘉主板 package day12命令模式.Impl;import day12命令模式.ZhuBanApi;public class JiJiaZhuBanImpl implements ZhuBanApi {Overridepublic void open() {System.out.println(技嘉主板正在开机请等候);System.out.println(接通电源......);System.out.println(设备检查......);System.out.println(装载系统......);System.out.println(机器正常运转......);System.out.println(机器已经正常打开请操作);} }微星主板 package day12命令模式.Impl;import day12命令模式.ZhuBanApi;public class WeiXingZhuBanImpl implements ZhuBanApi {Overridepublic void open() {System.out.println(微星主板正在开机请等候);System.out.println(接通电源......);System.out.println(设备检查......);System.out.println(装载系统......);System.out.println(机器正常运转......);System.out.println(机器已经正常打开请操作);} }定义命令接口里面只有一个方法就是执行 package day12命令模式;/*** 命令接口声明执行的操作*/ public interface Command {/*** 执行命令对应的操作*/public void execute(); }命令实现我们按下的是按钮但是按钮本身不知道怎么去启动电脑只有主板知道所以我们要持有真正实现命令的接收者--主板对象 package day12命令模式.Impl;import day12命令模式.Command; import day12命令模式.ZhuBanApi;/*** 开机命令接口的实现*/ public class CommandImpl implements Command {/*** 持有真正实现命令的接收者--主板对象*/private ZhuBanApi zhuBanApi null;/*** 构造方法传入主板对象* param zhuBanApi*/public CommandImpl(ZhuBanApi zhuBanApi){this.zhuBanApi zhuBanApi;}/*** 实现开机*/Overridepublic void execute() {this.zhuBanApi.open();} }提供机箱按钮是放置在机箱上的。机箱对象本身有按钮持有按钮对应的命令对象也就是Command package day12命令模式;/*** 机箱对象本身有按钮持有按钮对应的命令对象*/ public class Box {/*** 开机命令对象*/private Command openCommand;/*** 设置开机命令对象* param openCommand 开机命令对象*/public void setOpenCommand(Command openCommand) {this.openCommand openCommand;}/*** 提供给客户使用接收并相应用户请求相当于那妞被按下触发的方法*/public void openButton(){openCommand.execute();} }客户使用按钮把与主板连接好的按钮对象放置在机箱上。 package day12命令模式;import day12命令模式.Impl.CommandImpl; import day12命令模式.Impl.WeiXingZhuBanImpl;public class Client {public static void main(String[] args) {// 1.创建接收者WeiXingZhuBanImpl zhuban new WeiXingZhuBanImpl();// 2.设置接收者与命令对象的关系 (按钮要进行开机使用哪个主板)CommandImpl command new CommandImpl(zhuban);// 3.创建Invoker,用Invoker来执行命令Box box new Box();// 4.将2中绑定好关系的命令对象设置到Invoker中让Invoker持有box.setOpenCommand(command);// 5.调用Invoker中的方法触发要求执行命令// Box定义了方法用持有命令对象接口里面的方法接口的实现中持有真正实现命令的接收者ZhuBanApi,// ZhuBanApi他去调用真正的开机方法而这个接口有多个实现类到底调用哪一个呢// 因为在创建接收者时已经把微星这个接收者与命令对象绑定起来了所以用的就是微星的实现类box.openButton();} }解析先new一个主板主板要跟按钮连接成为一个具体的开机命令我又new一个机箱把这个升级过的按钮(带有功能)装到这个机箱上机箱最后调用这个按钮。 1.会发现命令模式的关键之处就是把请求封装成了对象也就是命令对象并定义了统一的执行操作的接口。 2.在命令模式中会有一个组装者他来维护虚实现与真实实现之间的关系 参数化设置 可以用不同的命令对象去参数化配置客户的请求 定义主板接口现在增加一个重启的按钮因此主板加一个方法来实现重启功能 package day12命令模式;/*** 主板的接口*/ public interface ZhuBanApi {/*** 定义一个功能开机*/public void open();/*** 定义重启功能*/public void reset(); }实现类也要改一下 技嘉的 package day12命令模式.Impl;import day12命令模式.ZhuBanApi;/*** 主板的实现*/ public class JiJiaZhuBanImpl implements ZhuBanApi {Overridepublic void open() {System.out.println(技嘉主板正在开机请等候);System.out.println(接通电源......);System.out.println(设备检查......);System.out.println(装载系统......);System.out.println(机器正常运转......);System.out.println(机器已经正常打开请操作);}Overridepublic void reset() {System.out.println(技嘉主板现在正在重新启动机器请等候);System.out.println(机器已经正常打开请操作);} }微星的 package day12命令模式.Impl;import day12命令模式.ZhuBanApi;/*** 主板的实现*/ public class WeiXingZhuBanImpl implements ZhuBanApi {Overridepublic void open() {System.out.println(微星主板正在开机请等候);System.out.println(接通电源......);System.out.println(设备检查......);System.out.println(装载系统......);System.out.println(机器正常运转......);System.out.println(机器已经正常打开请操作);}Overridepublic void reset() {System.out.println(微星主板现在正在重新启动机器请等候);System.out.println(机器已经正常打开请操作);} }接下来定义命令和按钮接口不变添加一个重启命令的实现resetCommandImpl package day12命令模式.Impl;import day12命令模式.Command; import day12命令模式.ZhuBanApi;public class ResetCommandImpl implements Command {/*** 持有主板也就是接收者对象*/private ZhuBanApi zhuBanApi;/*** 构造函数传入* param zhuBanApi*/public ResetCommandImpl(ZhuBanApi zhuBanApi){this.zhuBanApi zhuBanApi;}Overridepublic void execute() {this.zhuBanApi.reset();} }Box改造一下这里增加一个重启命令对象 package day12命令模式;/*** 机箱对象本身有按钮持有按钮对应的命令对象*/ public class Box {/*** 开机命令对象*/private Command openCommand;/*** 重启命令对象*/private Command resetCommand;public void setResetCommand(Command resetCommand) {this.resetCommand resetCommand;}/*** 设置开机命令对象* param openCommand 开机命令对象*/public void setOpenCommand(Command openCommand) {this.openCommand openCommand;}/*** 提供给客户使用接收并相应用户请求相当于按钮被按下触发的方法*/public void openButton(){openCommand.execute();}/*** 重启按钮*/public void resetButton(){resetCommand.execute();} }Client package day12命令模式;import day12命令模式.Impl.OpenCommandImpl; import day12命令模式.Impl.ResetCommandImpl; import day12命令模式.Impl.WeiXingZhuBanImpl;public class Client {public static void main(String[] args) {WeiXingZhuBanImpl zhuban new WeiXingZhuBanImpl();OpenCommandImpl openCommand new OpenCommandImpl(zhuban);ResetCommandImpl resetCommand new ResetCommandImpl(zhuban);Box box new Box();box.setOpenCommand(openCommand);box.setResetCommand(resetCommand);System.out.println(正确配置);System.out.println(按下开机按钮:);box.openButton();System.out.println(按下重启按钮:);box.resetButton();} }命令模式的优点 本质  命令模式的本质封装请求 何时选用
http://www.hkea.cn/news/14530450/

相关文章:

  • 手机端模板网站上海网站建设最佳方案
  • 哪些网站可以做代理东方建设官方网站
  • 厦门微网站建设新手自建网站做跨境电商
  • 邯郸市网络建站鄞州区优秀营销型网站建设首选
  • 黄骅旅游景点大全广告开户南京seo
  • 网站开发终止协议书无锡大型网站建设公司
  • 打造自己的网站请人做网站需要问哪些问题
  • 微信授权登录网站退出怎么做wordpress主页显示图片
  • 网站模板插件论论坛坛网网站站建建设设
  • 如何加强精神文明网站建设内容最牛的视频网站建设
  • 购物网站后台怎么做中小型网站建设公司
  • 推荐做流程图的网站美工免费素材网站
  • 济南网站建设安卓版贸易公司注册需要什么条件
  • 公司内部的网站主要作用做一个网站的费用
  • 深圳网站公司招聘信息1m宽带做网站
  • 网站商品图片尺寸jeecms
  • 上海共富新村网站建设十大利润最高的实体店
  • 做服装招聘的网站有哪些内容海口专门做网站
  • 宁波网站推广公司报价网络营销与推广方案
  • 黑色大气金融投资企业网站模板店标logo图片免费制作
  • 权威的扬中网站建设聊城做网站的公司策划
  • 北京网站优化步骤互联网黄页广告
  • 在菲做平台网站怎么自己制作图片
  • 开源网站系统企业网站群建设的原因
  • 手机网站建设分析公司网站不续费能打开网页吗
  • 建构网站西安北京做百度网站建设
  • 中国住房和建设部厅查询网站wordpress外贸主题教程
  • 检察院门户网站建设成效百度官网登录
  • 网站运营的具体工作包括哪些旅游网站设计规划书
  • 象刀设计网站顺德精品网站建设