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

哪个学校设有网站开发专业重庆自适应网站建设

哪个学校设有网站开发专业,重庆自适应网站建设,Xammp安装Wordpress,wordpress 开启伪静态目录 一. 前言 二. 实现 三. 优缺点 一. 前言 观察者模式属于行为型模式。在程序设计中,观察者模式通常由两个对象组成:观察者和被观察者。当被观察者状态发生改变时,它会通知所有的观察者对象,使他们能够及时做出响应&#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.yayakq.cn/news/742737/

相关文章:

  • 个人网站要买多大的空间淘宝网站建设目标是什么
  • 泰州网站开发公司下载图片的网站建设
  • 域名与网站沈阳营销型网站设计教程
  • 17网站一起做网店官网校园二手市场网站开发的意义
  • 微信网站的制作商城二次开发
  • 做地方门户网站赚钱吗展厅设计公司成都
  • 爱站网站seo查询工具提交百度一下
  • 外贸自建站平台怎么找塘沽网吧开门了吗
  • 在什么网站能帮人做pptios开发软件
  • 郑州网站推广公司医疗网站建设怎么样
  • 网站后台html页面如何注册网站免费的
  • 雄安企业网站建设网络体系结构
  • 金融公司网站模版微信分享接口网站开发 php
  • cms建站系统哪个好手机网站建设的整体流程图
  • 撰写网站的建设方案免费注册网站有哪些
  • 大气产品展示网站源码淘宝客如何做网站推广
  • 做网站用什么开发好龙泉公路建设投资有限公司网站
  • 投资担保网站建设网络建设设计方案
  • 唐山市政建设总公司网站软件开发服务平台
  • 怎么查询网站空间商明薇通网站建设
  • 通过平台建网站汽车网站哪个好
  • 旅游门户网站有哪些上海电子通科技网站建设
  • 结构设计网站推荐网站开发流程详细步骤
  • 一般做外贸上什么网站好城乡住房和建设厅官网
  • 大庆 网站建设网站将要准备建设的内容
  • 找兼职做酒店网站流量推广怎么做
  • 网站开发法律可行性阿里云域名申请注册
  • 网站建设与管理实训报告总结藤虎广州网站建设
  • 贵阳市网站做的最好的seo推广代运营
  • 能联系做仿瓷的网站游戏开发成本