观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
主题和观察者定义了一对多的关系。观察者依赖于此主题,只要主题状态一有改变,观察者就会被通知。
类图:
package com.zaxk.study.pattern;
import java.util.Observable;
import java.util.Observer;
/**
* 观察者模式
* Created by ZhuXu on 2017/11/9 0009.
*/
public class ObserverTest {
public static void main(String[] args) {
School school = new School();
Student student = new Student(school);
Teacher teacher = new Teacher(school);
school.notice();
}
}
/**
* 观察者:学生
*/
class Student implements Observer {
Observable observable;
public Student(Observable observable) {
this.observable = observable;
observable.addObserver(this);
}
@Override
public void update(Observable o, Object arg) {
if (o instanceof School) {
System.out.println("Student 收到通知:" + ((School) o).getNotice());
}
}
}
/**
* 观察者:老师
*/
class Teacher implements Observer {
Observable observable;
public Teacher(Observable observable) {
this.observable = observable;
observable.addObserver(this);
}
@Override
public void update(Observable o, Object arg) {
if (o instanceof School) {
System.out.println("Teacher 收到通知:" + ((School) o).getNotice());
}
}
}
/**
* 被观察者:学校
*/
class School extends Observable {
String notice;
public void notice() {
setNotice("放假通知:1~7号放假");
setChanged();
notifyObservers();
}
public String getNotice() {
return notice;
}
public void setNotice(String notice) {
this.notice = notice;
}
}
JDK中已实现的观察者模式:Swing中的事件处理。
当组件状态(被观察者)发生改变时,通知监听器(观察者)处理对应事件。
- 大小: 25.3 KB
分享到:
相关推荐
设计模式之观察者模式Java版本实现和UML类设计图
结合微信公众号讲解观察者模式,生动形象,关键是上手快啊
java 设计模式 观察者模式 简单实例 包括测试test类
java观察者模式的实例代码。从最简单的实例开始,到观察者模式。有什么问题可以加扣扣共同探讨
设计模式--观察者模式java例子
Java设计模式——观察者模式的两种情况。
java常用设计模式-观察者模式
观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件...
设计模式:观察者模式java和javabean
java实现观察者设计模式,利用ApplicationListener和ApplicationEvent。Test包里有测试代码
Java 观察者模式的浅析 简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者...
浅析Java设计模式【1】——观察者!
《java设计模式》课后习题及模拟试题答案
Java设计模式的观察者模式讲解,可以由浅入深了解观察者模式的应用。
章节介绍:1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之...
设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象...4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。
观察者模式:对象之间多对一依赖的一种设计方案,被依赖的对象为Subject,依赖的对象为Observer,Subject通知Observer变化,这个例子是java内置观察者模式
是基于Java的实现观察者模式的银行系统,对正在学习Java设计模式的 有一定的帮助。。
java 三种设计模式Demo 其中对单例模式做了详细的讲解,及性能和线程安全方面的优化其中Singleton.java为经典单例模式。