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

网站左下角广告代码网站如何三合一

网站左下角广告代码,网站如何三合一,网站是否上线,静态网站建设平台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.yayakq.cn/news/781385/

相关文章:

  • 济宁住房和城乡建设厅网站wordpress网页教程
  • 公司网站能自己做二维码手机windows wordpress
  • 福建省建设注册执业资格管理中心网站做美剧网站侵权
  • 网站开发任务分解小程序的功能与作用
  • 部署一个网站大概多少钱wordpress做PHP
  • 做的网站如何全屏洋气的设计公司名字
  • 怎么用dw做静态网站seo怎么收费的
  • 深圳素马设计蒲城网站建设wzjseo
  • 类似+wordpress+建站网站建设开发合同范本
  • 咖啡网站建设策划书安康市网约车平台
  • 电子商务网站开发技术支持wordpress 下载超链接
  • CDN 网站是否需要重新备案广州企业建设网站
  • 互动类网站网推平台有哪些
  • 许昌市做网站公司汉狮价格做一钓鱼网站
  • 济南网站建设哪家强 资海中国网站设计
  • 卢龙建设银行官网网站加快网站平台建设
  • 前台和后台网站开发有什么区别培训学校设计
  • python 网站开发实例教程wordpress首页不显示图片
  • 做网站接广告赚钱吗仿5173网站
  • 家教网站怎么做前端做微网站
  • 大学生活动网站开发文案四川建设工程招标信息网
  • 网站在线建设方案即墨建设局网站
  • 怎么建设阿里巴巴国际网站德州北京网站建设
  • 四川住房和城乡建设九大员网站网站优化客户报表
  • 苏州比较大的网站公司网站备案换接入商
  • 查看邮箱注册的网站wordpress 注册钩子
  • 北京一家专门做会所的网站简述程序开发的流程
  • 旅游网站模板htmlwordpress支付查看插件
  • 有模板如何做网站廊坊做网站优化
  • 广州网络帮助建站百度 营销推广多少钱