参考:http://www.jdon.com/designpatterns/observer.htm
还在看大话设计模式,今天偶然翻到这个模式,所以写写~~下面的内容均和此书有关。
观察者模式(Observer):适用于多个系统或者对象与一个特定的对象进行联动,当这个对象某个状态改变的时候,触发具体抽象类的Update函数,对多个对象进行update。
下面是这个观察者模式的原型图
源码:
Subject类
package observer.prototype;
import java.util.ArrayList;
public abstract class Subject {
private ArrayList<Observer> observers = new ArrayList<Observer> ();
public void Attach(Observer observer){
observers.add(observer);
}
public void Detach(Observer observer){
observers.remove(observer);
}
public void Notify(){
for(Observer observer:observers){
observer.Update();
}
}
}
Subject的实现类:
package observer.prototype;
public class ConcreteSubject extends Subject {
private String subjectState;
public void setSubjectState(String subjectState) {
this.subjectState = subjectState;
}
public String getSubjectState() {
return subjectState;
}
}
Observer的抽象类:
package observer.prototype;
public abstract class Observer {
public abstract void Update();
}
Observer的具体类:
package observer.prototype;
public class ConcreteObserver extends Observer {
private String name;
private String observerState;
private ConcreteSubject subject;
ConcreteObserver(ConcreteSubject subject,String name){
this.name = name;
this.subject = subject;
}
@Override
public void Update() {
observerState = subject.getSubjectState();
System.out.println("观察者 "+name+"的状态是"+observerState);
}
}
分享到:
相关推荐
observer观察者模式
C#面向对象设计模式纵横谈(19):(行为型模式) Observer 观察者模式 (Level 300)
C#面向对象设计模式 (行为型模式) Observer 观察者模式 视频讲座下载
观察者模式 概述 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 适用性 1.当一个抽象模型有两个方面,其中一个方面依赖于另一方面。 将这二者封装...
通过事例和代码,详细介绍了Observer模式在android中的应用
NULL 博文链接:https://lgh3292.iteye.com/blog/600905
定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
主要介绍了C#设计模式之Observer观察者模式解决牛顿童鞋成绩问题,简单讲述了观察者模式的原理并结合具体实例形式分析了使用观察者模式解决牛顿童鞋成绩问题的具体步骤相关操作技巧,并附带demo源码供读者下载参考,...
设计模式C++学习之观察者模式(Observer)
Observer(观察者模式)学习源码,该源码讲述并Observer(观察者模式)一些具体实现过程
我们说学习Java应该从Swing开始,那么学习Swing最重要的思想就是对于观察者模式的理解(Observer Pattern)。因为,该设计模式在Java Swing框架中贯穿了始终。对于C#的委托、代理概念所使用的Callback(回调模式--...
观察者模式通常的叫法叫做订阅-发布模式,类似于报刊杂志的订阅,观察者和被观察者就是读者和邮局的关系,读者先要在邮局订阅想要的报刊,当报刊发行时,邮局会将报刊邮寄到读者家里。观察者(Observer)和被观察者...
观察者模式(Observer) 用意:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。
观察者模式示例 观察者模式示例 观察者模式示例 观察者模式示例 观察者模式示例 观察者模式示例
观察者模式Observer: 以手机号码为例,老师的手机号码存在学生的手机里,若老师的手机号改变,她会发一条短信通知每个学生自己手机号变了