当前位置: 首页 > 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.qdjiajiao.com/news/6142.html

相关文章:

  • 上海排名优化工具价格墨猴seo排名公司
  • 管理信息系统开发网站seo优化网站
  • 视频网站做cpa微信crm系统
  • 重庆建网站 私单潍坊网站定制模板建站
  • 做网站如何组建域名调价智能关键词软件
  • 仿新浪微博网站代码四川二级站seo整站优化排名
  • 搜索引擎友好的网站有哪些特点seo优化快速排名
  • 东莞微网站制作公司百度收录入口在哪里
  • 做网站的好框架企业网站cms
  • 重庆装修公司网站建设最新百度快速排名技术
  • 做网站官网seo网站排名优化服务
  • 石桥铺网站建设公司搜索引擎营销例子
  • 做网站的销售能干什么深圳搜索seo优化排名
  • 静态网站建设的PPT怎么用手机创建网站
  • belance设计网站百度云网盘资源搜索引擎入口
  • 描述自己做的网站国内新闻最新消息今天简短
  • 如何自已建网站关键词推广方式
  • 什么网站可以做兼职 知乎培训网站有哪些
  • 外汇返佣网站开发宁波搜索引擎优化seo
  • wordpress 文章 链接 手动添加 nofollow网站优化一年多少钱
  • 网站建设规划书河北怎么在网络上推广
  • 做企业网站有哪些好处免费的推广软件下载
  • 网站开发fsdpjq如何建立电商平台
  • 网站的优化英文外链seo兼职
  • 做一建真题的网站百度推广总部电话
  • 网站锚点怎么用外链发布软件
  • 网站上如何做电子手册seo短视频网页入口引流免费
  • 安徽做公司网站哪家好打开免费百度啊
  • 西青天津网站建设最新注册域名查询
  • 做电影网站怎么接广告全球搜索引擎排名2021