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

慈溪企业网站建设网站设计哪家比较好

慈溪企业网站建设,网站设计哪家比较好,华强北做电子网站,英德市城乡建设局网站命令模式#xff08;Command Pattern#xff09; 定义 命令模式是对命令的封装#xff0c;每一个命令都是一个操作#xff1a;请求的一方发出请求要求执行一个操作#xff1b;接收的一方收到请求#xff0c;并执行操作。 命令模式解耦了请求方和接收方#xff0c;请求…命令模式Command Pattern 定义 命令模式是对命令的封装每一个命令都是一个操作请求的一方发出请求要求执行一个操作接收的一方收到请求并执行操作。 命令模式解耦了请求方和接收方请求方只需请求执行命令不用关心命令是怎样被接收怎样被操作以及是否被执行等。 命令模式是将请求封装成一个对象这样可以使用不同的请求参数化其他对象依赖注入并且能够支持请求的排队执行、记录日志、撤销等功能。 本质解耦命令请求与处理。 属于行为型模式。 适用场景 命令模式的适用场景 1.实现语义中的“命令”的操作如命令菜单shell命令 2.请求调用者和请求的接收者需要解耦使得调用者和接收者不直接交互。 3.需要抽象出等待执行的行为比如撤销undo和恢复redo等操作。 4.需要支持命令宏及命令组合操作 标准示例 ICommand 命令接口 ConcreteCommand 具体命令实现类 Invoker 调用类构造方法入参为 ICommand它的execute方法实际调用的是传入对象的 cmd.execute() Receiver 接收类只有一个方法action 调用类和接收类通过ConcreteCommand 实现了解耦。 具体代码如下 //命令接口 public interface ICommand {void execute(); }//具体命令接口 public class ConcreteCommand implements ICommand{//每个命令对应一个不同的receiverprivate Receiver receiver new Receiver();Overridepublic void execute() {receiver.action();} }/*** 调用者*/ public class Invoker {private ICommand cmd;public Invoker(ICommand cmd){this.cmd cmd;}public void execute(){this.cmd.execute();} }/*** 接收者*/ public class Receiver {public void action(){System.out.println(执行动作);} }public class ClientTest {public static void main(String[] args) {ICommand cmd new ConcreteCommand();Invoker invoker new Invoker(cmd);invoker.execute();} }生活中也有很多命令模式的例子。 比如遥控器它把我们的请求和设备的执行做了解耦将请求和执行做了分离。 比如餐厅点菜单客人按照菜单点菜后厨根据菜单配菜做菜菜单就是个解耦的介质将请求和执行做了解耦可以达到灵活扩展的目的。 下面举个智能空调的例子 现在的空调都支持APP操控了。这必然就涉及到 设备与服务器 的交互。 我们现在定义2个接口 设备注册设备心跳上送 我们使用命令模式来实现这四个接口。 相应的类为 ICommand、AbstractCommand、 RegistCommand、HeartbeatCommand Invoker、 Receiver ICommand public interface ICommand {void execute(); }AbstractCommand public abstract class AbstractCommand implements ICommand {protected Receiver receiver new Receiver(); }RegistCommand public class RegistCommand extends AbstractCommand {public void execute() {receiver.registAction();} }public class HeartbeatCommand extends AbstractCommand {public void execute() {receiver.heartbeatAction();} }Receiver public class Receiver {public void registAction(){System.out.println(regist ...);}public void heartbeatAction(){System.out.println(heartbeat ...);} }Invoker public class Invoker {public void execute(ICommand command){command.execute();} }ClientTest public class ClientTest {public static void main(String[] args) {Invoker invoker new Invoker();invoker.execute(new RegistCommand());Invoker invoker1 new Invoker();invoker1.execute(new HeartbeatCommand());} }执行结果 regist ... heartbeat ...以上就是命令模式全部内容感谢阅读。
http://www.w-s-a.com/news/263955/

相关文章:

  • 设计广告公司网站建设网站开发技术选择
  • 个人网站教程个人网站有必要备案吗
  • 网站建设推广好做吗黄浦企业网站制作
  • 怎样做28网站代理中山网站建设方案外包
  • vs2010做网站前台搭建小网站
  • 做视频必须知道的一些网站wordpress 标签鼠标滑过_弹出的title 代码美化
  • 怎么做室内设计公司网站电商运营培训视频课程
  • 昆明网站策划天津市建筑信息平台
  • 三亚放心游app官方网站wordpress 个人主题
  • 做简单的网站备案平台新增网站
  • 中国建设网站银行网络营销推广方案整合
  • 网站域名列表dede网站白屏
  • 站长工具一区品牌建设卓有成效
  • 电子商务网站建设案例wordpress批量编辑
  • 想代理个网站建设平台100个最佳市场营销案例
  • 钟表东莞网站建设石家庄做网站时光
  • 织梦 图片网站源码成都建设工程安监局网站
  • 做兼职的网站策划书湖北省建设工程造价信息网
  • 企业网站网址长期做网站应该购买稳定的空间
  • 网站静态化设计html5手机网站制作
  • 深圳最简单的网站建设家居网站建设全网营销
  • 如何取消网站备案佛山网站优化公司
  • 网站开发 成都广水网站设计
  • 音乐网站建设目标合同管理系统
  • jq网站特效插件如何知道网站是否被k
  • 自己的网站怎么接广告网站搭建收费
  • 宁波大型网站制作建立一个网站 优帮云
  • 大连零基础网站建设教学电话有哪些比较好的做ppt好的网站
  • 哪个网站做logo设计我的建筑网
  • php电子商务网站开发沂源手机网站建设公司