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

陕西西安网站设计公司网站项目开发流程

陕西西安网站设计公司,网站项目开发流程,wordpress oa教程,电子商务+网站建设目录 定义 几个参数 场景描述 代码示例 参数化设置 命令模式的优点 本质 何时选用 定义 几个参数 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.yutouwan.com/news/111830/

相关文章:

  • 怎么做装修网站福州网站设计网站系统制作
  • 西安网站制作公司排阜阳哪里做网站的多
  • 怎样在手机做自己的网站wordpress 外链图片
  • vps做自己的网站洛阳做网站哪家便宜
  • php网站后台模板下载不了利用大平台做网站
  • 做暧暧小视频免费网站抖音代运营都做什么
  • 常熟网站建设专业的公司网站的定位分析
  • php网站开发 多少钱外贸软件定制
  • 网站制作和推广lv官网微信网页版下载安装
  • 网站建设维护属于什么专业广告推广是什么
  • 手机网站建设的背景有别墅的件怎么写者
  • 华为电子商务网站建设网站首页html
  • 中学网站建设 课设17网站一起做网店广州国大
  • 兰州优化网站网站建设的认可
  • 做网站图片怎么做wordpress实现301跳转详解
  • 泉州有哪些做网站的平面设计公司广告语
  • 做英文网站怎样网站建设
  • 吉林省级建设行政主管部门政务网站烟台网站制作企业
  • wordpress删除角色名seo网站推广的作用
  • 南昌加盟网站建设现代简约室内设计说明200字
  • 红酒网站建设方案范本网站首页制作采用
  • 网站设计的公司选哪家淘宝推广网站怎么做
  • 建站宝盒模板wordpress微信接口
  • 网站维护托管企业网站建设公司郑州
  • 西安网站开发哪家好生鲜超市店面设计
  • 如何做网站监控安徽做网站哪家好
  • 潜山网站建设南充手机网站建设
  • 网站宣传推广策划联通物联网服务运营平台
  • 淘宝不允许 网站建设简单网站建设教学视频
  • 做小说网站做国外域名还是国内的好做视频网站的空间