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

阿里巴巴国际网站官网网站网站环境搭建教程

阿里巴巴国际网站官网,网站网站环境搭建教程,网站 转成 微信小程序,广州哪家做网站还可以命令模式 一.简介二. 案例2.1 接收者#xff08;Receiver#xff09;2.2 命令接口实现对象#xff08;ConcreteCommand#xff09;2.3 调用者#xff08; invoker#xff09;2.4 获取Receiver对象2. 5 装配者客户端测试 三. 结论3.1 要点3.2 示例 前言 本设计模式专栏写了… 命令模式 一.简介二. 案例2.1 接收者Receiver2.2 命令接口实现对象ConcreteCommand2.3 调用者 invoker2.4 获取Receiver对象2. 5 装配者客户端测试 三. 结论3.1 要点3.2 示例 前言 本设计模式专栏写了很多设计模式的文章希望大家点赞收藏一起学习 这是我在这个网站整理的笔记,有错误的地方请指出关注我接下来还会持续更新。 作者神的孩子都在歌唱 一.简介 百度百科 在软件系统中行为请求者与行为实现者通常呈现一种紧耦合。但在某些场合比如要对行为进行记录、撤销/重做、事务等处理这种无法抵御变化的紧耦合是不合适的。在这种情况下如何将行为请求者与行为实现者解耦将一组行为抽象为对象实现二者之间的松耦合。这就是命令模式Command Pattern。 个人理解 某个行为有多个对象执行并且我们需要对这个行为进行一些监控等处理。那么我们就需要将这种行为抽象出来这种就叫做命令模式。 在命令模式中有如下角色 接收者Receiver 任何类都可能成为一个接收者只要它能够实现命令要求实现的相应功能。命令接口实现对象ConcreteCommand 是“虚”的实现通常会持有接收者并调用接收者的功能来完成命令要执行的操作。调用者Invoker 要求命令对象执行请求通常会持有命令对象可以持有很多的命令对象。这个是客户端真正触发命令并要求命令执行相应操作的地方也就是说相当于使用命令对象的入口。装配者Client 创建具体的命令对象并且设置命令对象的接收者。注意这个不是我们常规意义上的客户端而是在组装命令对象和接收者。 接下来使用示例和代码来加深理解 二. 案例 举个例子 场景有两个人听从教练的指挥互相传球一个用左手传一个用右手传。结论: 可以看出我们有两个对象简称为左手人和右手人他们有一个共同的行为就是传球。由谁进行传球这个行为是教练下的命令。这时候就可以使用命令模式。 类图如下 2.1 接收者Receiver 我们首先定义两个人物对象 定义接收者的接口 /*** Author chenyunzhi* DATE 2024/9/12 15:13* Description: 接收者*/ public interface BallReceiver {void passBall(); }使用左手投球的人 /*** Author chenyunzhi* DATE 2024/9/12 15:14* Description: 使用左手接收者*/ public class LeftHandPeopleReceiver implements BallReceiver{Overridepublic void passBall() {System.out.println(人物1使用左手传球);} }使用右手投球的人 /*** Author chenyunzhi* DATE 2024/9/12 15:16* Description: 使用右手接收者*/ public class RightHandPeopleReceiver implements BallReceiver{Overridepublic void passBall() {System.out.println(人物2使用右手传球);} }2.2 命令接口实现对象ConcreteCommand 接下来我们要将传球这个命令抽象出来 定义执行命令的接口 /*** Author chenyunzhi* DATE 2024/9/12 15:19* Description: 执行命令*/ public interface Command {void execute(); }定义传球命令 /*** Author chenyunzhi* DATE 2024/9/12 15:23* Description: 传球命令*/ public class PassBallCommand implements Command{private final BallReceiver ballReceiver;public PassBallCommand(BallReceiver ballReceiver) {this.ballReceiver ballReceiver;}Overridepublic void execute() {this.ballReceiver.passBall();} }现在我们已经准备好了接收者和命令实现因此我们可以开始实现 调用者 invoker 类。 2.3 调用者 invoker 调用者的任务就是负责调用具体的命令 /*** Author chenyunzhi* DATE 2024/9/12 16:27* Description: 命令的调度者执行命令*/ public class BallInvoker {public Command command;public BallInvoker(Command command) {this.command command;}public void execute() {this.command.execute();} }2.4 获取Receiver对象 命令模式已经准备就绪我们可以开始编写一个简单的命令模式客户端程序。但在此之前我将提供一个方法来创建相应的 BallReceiver 对象。我们可以通过工厂策略模式去获取对应的人物对象 /*** Author chenyunzhi* DATE 2024/9/12 16:36* Description: 使用工厂模式设计*/ public class PeopleReceiverFactory {public static BallReceiver getBallReceiver(String people) {switch (people) {case LEFT_HAND:return new LeftHandPeopleReceiver();case RIGHT_HAND:return new RightHandPeopleReceiver();default:return null;}} }如果命令很多比如这里不止传球还有打球投球等等这些行为可以通过工厂的方式获取。 2. 5 装配者客户端测试 准备工作已经完成那么我们接下来就也可以开始测试了 /*** Author chenyunzhi* DATE 2024/9/12 16:45* Description:*/ public class CommandPatternClient {/*** 装配者*/public static void ballClient(String receiver) {// 创建左手传球的接收者对象BallReceiver ballReceiver PeopleReceiverFactory.getBallReceiver(receiver);// 创建命令并与接收者关联PassBallCommand passBallCommand new PassBallCommand(ballReceiver);// 创建调用者与命令关联BallInvoker ballInvoker new BallInvoker(passBallCommand);// 对调用者对象执行命令ballInvoker.execute();}public static void main(String[] args) {ballClient(LEFT_HAND);ballClient(RIGHT_HAND);} }ballClient方法负责组装命令对象和接收者。最后输出结果 三. 结论 3.1 要点 接收器实现与命令实现是分开的。命令实现类选择要在接收器对象上调用的方法接收器中的每个方法都将有一个命令实现。它充当接收者和操作方法之间的桥梁。Invoker 类只是将请求从 client 转发到 command 对象。客户端负责实例化适当的命令和接收器实现然后将它们关联在一起。Client 还负责实例化 invoker 对象并将 command object 与其关联并执行 action 方法。命令设计模式很容易扩展我们可以在接收器中添加新的动作方法并在不改变客户端代码的情况下创建新的命令实现。Command 设计模式的缺点是由于有太多的关联代码会变得庞大且令人困惑。 3.2 示例 java.lang.Runnable javax.swing.Action 作者神的孩子都在歌唱 本人博客https://blog.csdn.net/weixin_46654114 转载说明务必注明来源附带本人博客连接。
http://www.hkea.cn/news/14359352/

相关文章:

  • 沈阳免费网站制作青岛网站开发中心
  • 中国住房城乡建设厅网站首页做网站做推广有效果吗
  • 网站建设内容模板下载淘宝流量助手平台
  • 计算机网络网站甘肃做网站找谁
  • 电气网站建设wordpress head.php
  • 深圳地区5g微波网站建设计划网站建设与管理2018
  • 站长之家网页模板站长工具手机综合查询
  • 网站建设 厦门工业设计网站哪个最好
  • 网站制作推广方案电子商务网站建设与管理的有关论文
  • 如何设计网站装饰工程施工管理
  • 网站文章页做百度小程序本地网站建设
  • 北京网站制作多少钱WordPress源码带会员中心系统
  • 如何做地方网站医院网站建设需要注意什么
  • 企业建设网站网站建设公司商标注册网址
  • 免费发布广告信息的网站公司网站建设流程图
  • 网站管理公司 优帮云帮企业外卖网站做推
  • 方案 网站合肥网站开发培训
  • 做嗳嗳的网站湘潭网站建设湘潭
  • 个人网站设计作品图片泉州网站外包
  • 成品软件网站推荐saas小程序开发
  • 网站首页html大数据和网站开发
  • 做网站需要什么电脑配置建设银行兰州分行网站
  • 什么网站可以做网站测速对比如何设网站主页
  • 手机怎么建设视频网站网站修改标题有影响吗
  • 心理网站模板做网站有什么作用
  • 网站建设内容存储wordpress百万并发
  • 用微信怎么做企业网站wordpress 超过2m
  • 手机端网站建设备案wordpress弄个人博客好吗
  • 杭州网站建设及推广网站建设文字教程
  • 淘客做网站多少钱长春 网站 设计