路一步步走>> 设计模式十九:Observer-观察者

版权声明:本文为博主原创文章,未经博主允许不得转载。个人公众号:百草疯茂 https://blog.csdn.net/wang_pengyu/article/details/84892032
package com.test.DPs.XingWei.Observer;

import java.util.Enumeration;
import java.util.Vector;

/**
 * 行为型:Observer-观察者		外观:作用面为 对象
 */
interface Observer{
	void update();
}
class Observer1 implements Observer{
	@Override
	public void update(){
		System.out.println("Observer1 has received!");
	}
}
class Observer2 implements Observer{
	@Override
	public void update(){
		System.out.println("Observer2 has received!");
	}
}
interface Subject{
	//void add(Observer observer);
	//void del(Observer observer);
	void notifyObservers();
	void operation();
}
/**
 * 用途:定义对象间的一种一对多的依赖关系。
 *     当一个对象的状态发生改变时,所有依赖与它的对象都得到通知并被自动更新。
 */
abstract class AbstractSubject implements Subject{
	private Vector<Observer> vector = new Vector<Observer>();
	@Override
	public void notifyObservers(){
		Enumeration<Observer> enumo = vector.elements();
		while(enumo.hasMoreElements()){
			enumo.nextElement().update();
		}
	}
}
class mySubject extends AbstractSubject{
	@Override
	public void operation(){
		System.out.println("update self!");
		notifyObservers();
	}
}

猜你喜欢

转载自blog.csdn.net/wang_pengyu/article/details/84892032