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

电脑做会计从业题目用什么网站咸阳做网站

电脑做会计从业题目用什么网站,咸阳做网站,wordpress网站数据,html插件代码大全19.命令模式 首先就是我们的 Client 想要实现一个功能,于是它就创建了一个 Command, 为了方便调用将 Command 封装在了 Invoker 中,当我们想调用的时候,Invoker 会执行内部 Command 提供的方法, Receiver 接收到 Command 的请求&a…

19.命令模式
首先就是我们的 Client 想要实现一个功能,于是它就创建了一个 Command, 为了方便调用将 Command 封装在了 Invoker 中,当我们想调用的时候,Invoker 会执行内部 Command 提供的方法, Receiver 接收到 Command 的请求,为其提供底部支持。

多说无益,我将通过一个例子介绍命令模式。

实例
目前大部分的软件都支持用户自定义界面,比如说我们可以修改字体大小,背景颜色等。我们就以此为例。首先,写出两个类。

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Font {private String fontSize = "normal";
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BackGround {private String bgColor = "default color";
}

这是 Command, 修改字体大小和背景的类都继承于此。

public interface Command {void execute();
}

我们只是在类中获得一个 Font 类的引用,然后调用setFontSize() 方法对字体的大小进行设置。

@Data
@NoArgsConstructor
@AllArgsConstructor
public class LargeFontCommand implements Command {private Font font;@Overridepublic void execute() {font.setFontSize("large");}
}
@AllArgsConstructor
@NoArgsConstructor
@Data
public class NormalFontCommand implements Command {private Font font;@Overridepublic void execute() {font.setFontSize("Normal");}
}

background类的引用,调背景颜色

@NoArgsConstructor
@AllArgsConstructor
@Data
public class CustomBackGround implements Command {private BackGround backGround;private String color;public CustomBackGround(BackGround backGround){this.backGround = backGround;}@Overridepublic void execute() {backGround.setBgColor("Custom background");}
}
@AllArgsConstructor
@NoArgsConstructor
@Data
public class DefaultBackground implements Command {private BackGround backGround;@Overridepublic void execute() {backGround.setBgColor("default color");}
}

Invoker类存放命令

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Invoker {private List<Command> commands = new ArrayList<>();public void setCommand(int i,Command command){commands.add(i,command);}public void update(int i){commands.get(i).execute();}
}
public class CommandTest {public static void main(String[] args) {Font font = new Font();BackGround backGround = new BackGround();NormalFontCommand normalFontCommand = new NormalFontCommand(font);LargeFontCommand largeFontCommand = new LargeFontCommand(font);DefaultBackground defaultBackground = new DefaultBackground(backGround);CustomBackGround customBackGround = new CustomBackGround(backGround);Invoker invoker = new Invoker();invoker.setCommand(0,normalFontCommand);invoker.setCommand(1,largeFontCommand);invoker.setCommand(2,defaultBackground);invoker.setCommand(3,customBackGround);invoker.update(3);System.out.println(backGround.getBgColor());}
}

我们首先把所有的命令添加到了 Invoker , 然后直接调用 update() 方法就可以了。

这么做有什么好处呢?看的出来,可以将很多命令放进 Invoker , 它并不知道功能是如何实现的,它就像一个中介, Client 请求一个功能,它就将这个请求转给 Command 去实现。这种模式有很多的用途,比如说多功能遥控器,日志打印等。

还有一点不得不说的,我们可以使用宏命令,什么是宏命令呢?就是写一个 Command ,这个 Command 可以实现多个功能。比如说我们可以同时修改背景和颜色。

http://www.dtcms.com/a/517325.html

相关文章:

  • 凡科网站建设完成下载下载器淘宝网站可以做百度快照吗
  • 做更好的自己 网站wordpress网站搭建教程
  • KDD 2025 | CMA:用于时序去噪和预测的统一情境元自适应方法!
  • 湖北企业网站建设网页制作购物网站
  • 建设网站制作流程做网站需要什么学历
  • 大数据存储治理三剑客 -- 冷备、压缩、生命周期
  • 2025年10月22日 AI大事件
  • 网站title keywords成品网站设计网站
  • 建设网站的企业邮箱品牌网站建设绿d茶
  • 【经典书籍】C++ Primer 第14类虚函数与多态精华讲解
  • 怎么上架 App?iOS 应用上架完整流程详解与跨平台发布实战指南
  • 海南建设厅网站二级域名租用
  • 个人网站设计内容杭州网站建设出 名
  • 网站建设 洪塔专注集团网站建设
  • 网站怎么做利于优化高仿酒网站怎么做
  • HCIP第一次作业(vlan)
  • 定制开发响应式网站百度官网推广
  • 杨凌区住房和城乡建设局网站网页设计素材网站花
  • 厦门模版网站淘特app推广代理
  • Java的抽象类
  • 网站下载系统wordpress 8小时前
  • 脑电分析——认识各种波型与伪迹
  • 电商网站开发详细介绍网站底部浮动
  • PCIe协议之 Equalization篇 之 效果篇 之 眼图示例
  • 神马M50S++ 158T矿机:如何提升SHA-256挖矿性能与效率?
  • 深圳网站网络建设长沙好的做网站品牌
  • 操作系统作业二
  • ic电子网站建设免费网站优化工具
  • 美颜SDK功能开发实战:直播平台如何实现流畅美颜体验?
  • 爱胜品ICSP YPS-1133DN Pro 黑白激光打印机更换耗材后打印出现有规律黑条纹问题的描述