设计模式--观察者模式
设计模式 --观察者模式 1、观察者模式 观察者模式: 定义对象间一种一对多的依赖关系,当一个对象状态发生变化时,所有依赖于它的对象都得到通知,并被自动更新。 2、观察者模式的结构 角色 主题(Subject): 主题是一个接口,该接口规定了具体主题需要实现的方法,比如添加,删除观察者以及通知观察者的方法。 观察者(ObServer): 观察者是一个接口,该接口规定了具体观察者用来获得数据的方法。 具体主题(ConcreteSubject): 具体主题是实现主题接口的类的一个实例,该实例包含观察者关心的数据,而且这些数据可能经常发生变化。具体主题需要使用一个集合来存放观察者的引用,以便数据变化时通知具体的观察者。 具体观察者(ConreteObserver): 具体观察者是实现观察者接口的类的一个实例。具体观察者包含具体主题的引用,以便让具体主题将自己添加到具体主题的集合中,使自己成为具体主题的观察者,或者从具体主题的集合中将自己删除,不成为具体主题的观察者。 UML图 3、观察者模式举例 主题接口:Subject.java 1 package com.nick.pattern.observer; 2 3 import java.util.ArrayList; 4 5 /** 6 * @ 主题接口:定义了观察者数组(存放观察者的信息)和抽象方法 7 * @author