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

让你有做黑客感觉的网站广州网站优化

让你有做黑客感觉的网站,广州网站优化,wordpress签到插件下载,网站开发维护观察者模式 描述基本组件使用 描述 观察者模式,顾名思义就是一个对象观察着其他对象,一旦被观察的对象发生变化时,观察者对象也要做出相应动作。 其中,被观察者持有观察者的引用。由观察者主动注入被观察者内(有点像…

观察者模式

  • 描述
    • 基本组件
      • 使用

描述

观察者模式,顾名思义就是一个对象观察着其他对象,一旦被观察的对象发生变化时,观察者对象也要做出相应动作。

其中,被观察者持有观察者的引用。由观察者主动注入被观察者内(有点像,观察者向被观察者内部安插的一个内应)

通常包含2个抽象角色及其对应的实现

需要注意的是,实际使用中观察链不宜过长,可能引发性能问题

基本组件

  • 定义观察者抽象及其实现
public interface IObserver {String getName();void action(IObservable observable, Object... params);
}public class DefaultObserver implements IObserver {private final String name;public DefaultObserver(String name) {this.name = name;}@Overridepublic String getName() {return this.name;}@Overridepublic void action(IObservable observable, Object... params) {System.out.println(this.getName() + " 观察到 ["+ observable.getName() +"] 的行为: " + Arrays.stream(params).map(String::valueOf).collect(Collectors.joining("; ")));}
}
  • 定义被观察者抽象及实现
public class DefaultObservable implements IObservable {private final String name;private Set<IObserver> observers = new HashSet<>();public DefaultObservable(String name) {this.name = name;}@Overridepublic void addObserver(IObserver observer) {observers.add(observer);}@Overridepublic void removeObserver(IObserver observer) {observers.remove(observer);}@Overridepublic void notifyObserver(Object... params) {observers.forEach(observer -> observer.action(this, params));}public String getName() {return name;}
}

使用

public class Sample {public static void main(String[] args) {IObserver observer1 = new DefaultObserver("观察员1");IObserver observer2 = new DefaultObserver("观察员2");IObservable observable = new DefaultObservable("张三");observable.addObserver(observer1);observable.addObserver(observer2);observable.notifyObserver("发生了事件...");}
}
http://www.dtcms.com/wzjs/467384.html

相关文章:

  • 建立网站的作用东莞seo快速排名
  • 发布的手机网站是乱码营销管理制度范本
  • 武汉做网站的公司哪家好seo网站的优化方案
  • 淘宝客做自己网站app推广渠道在哪接的单子
  • 正规的网站建设学习网暴疯团队seo课程
  • 那个免费做微信订阅号的网站口碑营销有哪些
  • 爱心互助网站开发google下载官方版
  • 建设企业网站收款人为其他行打不开傻瓜式自助建站系统
  • 做ppt设计师哪个网站好企业网站seo诊断工具
  • 马化腾做的电商网站乔拓云建站平台
  • 网站上的在线答题是怎么做的建网站教学
  • 无锡微信网站建设价格电商运营推广的方式和渠道有哪些
  • 杭州企业网站设计搜素引擎优化
  • 一键抓取的网站怎么做百度推广费用一天多少钱
  • 建网站需要软件深圳seo网络推广
  • wordpress怎么建一个文章链接页面北京seo网络推广
  • 怎么把wordpress字去掉郑州seo方案
  • 佛山做网站公司重庆网站推广软件
  • 做网站推广有什么升职空间seo石家庄
  • 社群电商平台排名南宁百度首页优化
  • 金阊做网站价格今日头条新闻大事件
  • 施工企业费用预算的编制的内容包括哪些什么是搜索引擎优化?
  • 订阅号做影视网站百度的首页
  • 怎样在局域网做网站网络营销方案策划论文
  • 小企业做网站有用吗公司网站制作流程
  • seo网站收录工具孔宇seo
  • 彩票网站制作商品牌推广方案ppt
  • wordpress多文章宁波seo外包推广公司
  • 网站建设差打不开百度指数与百度搜索量
  • 客服外包公司太原seo优化