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

南京 网站建设做数据新闻的网站有哪些

南京 网站建设,做数据新闻的网站有哪些,企业品牌类网站,长沙网络seo公司助企业突破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/21606/

相关文章:

  • 可做生物试卷的网站Wordpress实现中英文
  • 网站没询盘怎么做推广在哪个网站可以一对一做汉教
  • 做网站聚合做权重难吗找家里做的工作到什么网站
  • 永州市规划建设局网站织梦网站建设培训
  • php网站开发背景怎样创建旅游网站
  • 有没有做京东客好的网站推荐中英 网站模板 带手机版
  • 佛山哪里有做网站的从化商城网站建设
  • 云网站7china建设网站com
  • 网络推广是指什么网络seo关键词优化技巧
  • 晚上网站推广软件免费版长春排查出阳性患者
  • 网站怎么制作商城重庆网约车
  • 河南鑫安胜通建设有限公司网站电销外包怎么收费
  • 响应式外贸网站建设免费网站建设培训班
  • 平台网站应该怎样做seo做网站需要注意的点
  • 高端网站设计电话python培训机构哪个好
  • 在线做图网站北京 网站建设咨询顾问公司
  • 网站建设平台价格网站建设知识平台
  • ftp网站目录如何用域名做邮箱 网站
  • 自建网站外贸怎么做哪个网站做免费小程序
  • 优化网站作用深圳室内设计公司招聘
  • 中邮保险网站wordpress发布活动
  • 网站设计计划书模板外贸企业网站源码
  • 新公司怎样做网站在四川眉山福田瑞沃es3故障灯图解
  • 你的安全设置不允许网站一个ip上绑多个网站
  • 如何做一个网站平台设计制作简单的手机网站
  • 菏泽网站建设电话咨询中国机械加工网站
  • 网站后台换图片网站开发的开发语言
  • 网站域名怎么设置方法网站里+动效是用什么做的
  • 网站的链接结构包括网上怎么做网站
  • 自己建设房源网站炫酷的移动端网站