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

百合怎么做网站企业网络营销策划方案

百合怎么做网站,企业网络营销策划方案,做dhl底单的网站是 什么,做网站需要服务器么目录 一. 前言 二. 实现 三. 优缺点 一. 前言 观察者模式属于行为型模式。在程序设计中,观察者模式通常由两个对象组成:观察者和被观察者。当被观察者状态发生改变时,它会通知所有的观察者对象,使他们能够及时做出响应&#xf…

目录

一. 前言

二. 实现

三. 优缺点


一. 前言

    观察者模式属于行为型模式。在程序设计中,观察者模式通常由两个对象组成:观察者和被观察者。当被观察者状态发生改变时,它会通知所有的观察者对象,使他们能够及时做出响应,所以也被称作“发布-订阅模式”。

二. 实现

主题(Subject)具有注册和移除观察者、并通知所有观察者的功能,主题是通过维护一张观察者列表来实现这些操作的。
观察者(Observer)的注册功能需要调用主题的 registerObserver() 方法。

案例:天气数据布告板会在天气信息发生改变时更新其内容,布告板有多个,并且在将来会继续增加。

public interface Subject {void resisterObserver(Observer o);void removeObserver(Observer o);void notifyObserver();
}
public class WeatherData implements Subject {private List<Observer> observers;private float temperature;private float humidity;private float pressure;public WeatherData() {observers = new ArrayList<>();}public void setMeasurements(float temperature, float humidity, float pressure) {this.temperature = temperature;this.humidity = humidity;this.pressure = pressure;notifyObserver();}@Overridepublic void resisterObserver(Observer o) {observers.add(o);}@Overridepublic void removeObserver(Observer o) {int i = observers.indexOf(o);if (i >= 0) {observers.remove(i);}}@Overridepublic void notifyObserver() {for (Observer o : observers) {o.update(temperature, humidity, pressure);}}
}
public interface Observer {void update(float temp, float humidity, float pressure);
}
public class StatisticsDisplay implements Observer {public StatisticsDisplay(Subject weatherData) {weatherData.resisterObserver(this);}@Overridepublic void update(float temp, float humidity, float pressure) {System.out.println("StatisticsDisplay.update: " + temp + " " + humidity + " " + pressure);}
}
public class CurrentConditionsDisplay implements Observer {public CurrentConditionsDisplay(Subject weatherData) {weatherData.resisterObserver(this);}@Overridepublic void update(float temp, float humidity, float pressure) {System.out.println("CurrentConditionsDisplay.update: " + temp + " " + humidity + " " + pressure);}
}
public class WeatherStation {public static void main(String[] args) {WeatherData weatherData = new WeatherData();CurrentConditionsDisplay currentConditionsDisplay = new CurrentConditionsDisplay(weatherData);StatisticsDisplay statisticsDisplay = new StatisticsDisplay(weatherData);weatherData.setMeasurements(0, 0, 0);weatherData.setMeasurements(1, 1, 1);}
}
CurrentConditionsDisplay.update: 0.0 0.0 0.0
StatisticsDisplay.update: 0.0 0.0 0.0
CurrentConditionsDisplay.update: 1.0 1.0 1.0
StatisticsDisplay.update: 1.0 1.0 1.0

三. 优缺点

优点
1. 被观察者和观察者对象之间不需要知道对方的具体实现,只需要知道对方的接口,避免了紧耦合的关系。
2. 由于被观察者对象并不关心具体的观察者是谁,所以在程序运行的过程中,可以动态地增加或者删除观察者对象,增加了灵活性。
3. 符合开闭原则,当需要添加新的观察者时,只需要添加一个实现观察者接口的类,而不需要修改被观察者对象的代码。
缺点
1. 当观察者没有被正确移除时,可能会导致内存泄漏的问题。
2. 实现观察者模式,需要定义多个接口和类,增加了程序的复杂度。
3. 在某些情况下,被观察者和观察者对象之间可能出现循环依赖的问题。

JDK中的命令模式
java.util.Observer
java.util.EventListener
javax.servlet.http.HttpSessionBindingListener

http://www.dinnco.com/news/27507.html

相关文章:

  • 昆山做百度网站产品营销策划方案3000字
  • 网站设计配色怎么做搜资源
  • 东莞seo建站优化工具外贸网站推广seo
  • wordpress cms模板百度seo优化包含哪几项
  • 企业网站建设调研报告谷歌浏览器在线打开
  • 海外网站cdn加速下载网站关键字优化软件
  • 软件开发工具与环境实践报告2021百度seo
  • 柳州企业网站建设公司深圳优化排名公司
  • 微信第三方做网站需要费用吗百度推广工作好干吗
  • 网站版权 备案icp杭州seo百度关键词排名推广
  • 网站404网页界面psd源文件模板万网的app叫什么
  • 晋城网站seo创建网站要钱吗
  • 做网站新闻软文营销ppt
  • 标书制作教学seo常规优化
  • 广州市越秀区建设局网站清远新闻最新消息
  • 一般网站建设都用什么字体专业做灰色关键词排名
  • 腾讯快速建站平台秘密入口3秒自动进入
  • 扬州外贸网站seo百度学术论文查重免费
  • 网站建设动态静态东莞seo黑帽培训
  • ps怎么做网站首页和超链接站长之家工具
  • 学网站开发要多少钱电商如何从零做起
  • 免费ai设计logo网站关键词seo价格
  • 沈阳网站建设 南塔广东省最新新闻
  • php网站管理旅游seo整站优化
  • 做网站套路线上职业技能培训平台
  • 视频网站做电商搜索引擎优化免费
  • 网站换服务器有影响吗对seo的理解
  • 做网站页面设计报价新乡seo网络推广费用
  • 做电影网站考什么产品软文怎么写
  • 英文网站建站公司磁力棒