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

网站建设国家和行业标准德州加盟网站建设

网站建设国家和行业标准,德州加盟网站建设,pixiv代理网址,网站设计模板百度云java命令模式在本教程中#xff0c;我们将学习命令模式#xff0c;这是一种重要的行为设计模式。 它具有一些重要的应用程序#xff0c;例如在文本编辑器中实现撤消/重做功能。 在命令设计模式中#xff0c;有一个命令对象位于发送方和接收方对象之间。 发送者对象可以创建… java命令模式 在本教程中我们将学习命令模式这是一种重要的行为设计模式。 它具有一些重要的应用程序例如在文本编辑器中实现撤消/重做功能。 在命令设计模式中有一个命令对象位于发送方和接收方对象之间。 发送者对象可以创建命令对象。 然后命令对象在接收器中调用暴露的方法。 因此发送方对象不需要了解接收方及其公开的方法。 我们还有另一个称为调用程序的对象。 调用程序是负责调用适当的命令对象以完成任务的对象。 我们还可以使用命令管理器来跟踪调用和操纵命令。 为什么要使用命令设计模式 命令模式有一些流行的用例 存储和调度请求我们可以将请求表示为命令对象然后可以通过事件触发器将其存储在列表中在特定时间进行操纵排队或完成。 例如可以通过将警报振铃表示为命令对象并在事件触发器上执行警报振铃功能来实现 支持完成/撤消命令模式使我们能够执行或撤消命令执行的操作 由于每个命令对象都支持do / undo操作因此我们可以扩展此功能以设计文本编辑器的do / undo操作。 这个想法是有两个命令对象列表– 历史记录和重做列表 历史记录列表包含到目前为止已执行的所有命令 另一方面 重做列表存储我们撤消的命令 对于每个命令请求都会创建执行命令对象然后将其添加到历史记录列表中 在撤消请求时我们将检查并在历史记录列表中的最新命令上调用撤消操作然后将该命令放在重做列表中 对于重做操作我们将使用重做列表上的最新命令即最近撤消的命令然后执行该命令并将其再次移至历史记录列表 听起来很简单吧 UML表示形式 我们可以将命令设计模式表示为 我们在哪里 命令定义命令对象操作的接口或抽象类。 ConcreteCommand这些是包含特定命令实际实现的具体类 接收器命令类调用接收器以执行请求的操作 调用者向客户公开的类。 负责调用适当的命令 此外每个命令类通常都提供以下方法的实现 execute定义应该完成的工作 unexecute这是负责撤消操作的方法 isReversible如果可以撤消命令则此方法应返回true 否则返回false 示例实现 假设我们必须为文本编辑器实现剪切复制粘贴功能。 因此我们首先定义Command接口 public interface Command {void execute();void unexecute();default boolean isReversible() {return true;} } 另外假设我们有一个支持文本插入和删除的Document类 //class which will be our Receiver public class Document {public void insert(String str, int position) {...}public String delete(int position, int noOfChars) {...}public void copy(int position, int noOfChars) {...} }编写具体命令 现在我们将定义CutCommand类 public class CutCommand implements Command {private Document doc;private String text;private int startPosition;private int noOfChars;//suitable constructorpublic void execute() {this.text this.doc.delete(startPosition, noOfChars);}public void unexecute() {this.doc.insert(text, startPosition);} } 我们还定义其他两个命令类 public class CopyCommand implements Command {private Document doc;private int startPosition;private int length;//suitable constructorpublic void execute() {this.doc.copy(startPosition, length);}public void unexecute() {System.out.println(Uncopy operation is blocked);}public boolean isReversible() { return false; } }public class PasteCommand implements Command {private Document doc;private String text;private int startPosition;//suitable constructorpublic void execute() {this.doc.insert(text, startPosition);}public void unexecute() {this.doc.delete(startPosition, text.length());} } 众所周知取消复制不是有效的操作我们在CopyCommand类的isReversible方法中返回了false 。 实施调用者 最后我们可以编写一个调用程序类 public class DocumentInvoker {private Document document;private CommandManager commandManager;public DocumentInvoker(Document document) {this.document document;commandManager CommandManage.getInstance();}public void cut(int position, int length) {Command cutCommand new CutCommand(document, position, length);commandManager.invoke(cutCommand);}public void copy(int position, int length) {Command copyCommand new CopyCommand(document, position, length);commandManager.invoke(copyCommand);}public void paste(String text, int position) {Command pasteCommand new PasteCommand(document, text, position);commandManager.invoke(pasteCommand);}} 在这里 CommandManager是管理历史记录和重做列表的类。 调用程序使用所需的信息实例化命令对象然后调用命令管理器以最终执行操作。 结论 在本教程中我们学习了如何在Java中实现命令设计模式。 由于发送方不需要了解任何有关接收方的信息因此可以促进松散耦合并且可以简单地调用操作。 翻译自: https://www.javacodegeeks.com/2019/09/command-design-pattern-in-java.htmljava命令模式
http://www.zqtcl.cn/news/777398/

相关文章:

  • wordpress安装在本地专业seo网络推广
  • 农庄网站模板网络文化经营许可证图片
  • 微信做模板下载网站有哪些内容江苏省常州建设高等职业技术学校网站
  • 网站开发补充合同范本docker 部署wordpress
  • 学会了php的语法怎么做网站海外推广媒体
  • 东莞网站建设排行企业网站开发公司大全
  • wordpress商城必备软件重庆seo优化推广
  • 蚌埠百度做网站山东省无障碍网站建设标准
  • 平乡企业做网站流量精灵官网
  • 厦门做网站优化公司wordpress cx-udy
  • 做外汇门户网站WordPress推广返佣插件
  • c语言在线编程网站学生个人网页设计作品
  • 南阳网站排名优化报价wordpress视频付费
  • 政务新网站建设ipv6改造wordpress
  • 店招免费设计在线生成网站seo优化关键词快速排名上首页
  • 毕设做系统与网站答辩wordpress个人模板
  • 农家乐网站建设wordpress改变访问目录结构
  • 单位网站建设的重要性盐城城南建设局一局网站
  • 网站登录验证码显示不出来刘强东当年做网站读的什么书
  • 网站seo优化步骤动态ip可以做网站
  • 用自己电脑怎么做网站广州公司建站
  • 购物网站前端浮动特效怎么做常用开发工具
  • 网页设计与制作精品课程网站wordpress文章页禁止右键
  • 英迈思做网站做的怎样中国建设银行官方网站纪念币
  • 最专业的手机网站建设厦门建设厅网站
  • 贵州省建设工程质量检测协会网站c 网站开发类似优酷
  • 关于网站建设申请卢沟桥做网站的公司
  • 网站源码对应的数据库怎么做单页成品网站
  • 网站分为哪几类上海人才网官网招
  • 网站建设的常见技术有哪些方面网站联系我们模块怎么做