初始设计模式7——观察者模式

观察者模式Observer Pattern

定义对象间一对多的依赖关系,使得每当一个对象改变状态,所有依赖它的对象都得到通知自动更新
观察者模式就是当一个对象的变化会引起其他对象变化时,使其他对象依赖于这个对象,当这个对象变化时,更新所有依赖于这个对象的其他对象。
<span style="white-space:pre">	</span>//抽象观察者类
	public abstract class Observer{
		public abstract void update();
	}
	//具体观察者
	public class ConcreteObserver{
		public void update(){//}
	}
	//抽象被观察者
	pubic abstract class Subject{
		private Vector<Observer> observers = new Vector<Observer>();
		public void add(Observer component){this.observers.add(component);}//增删容器
		public void remove(Observer component){this.observers.remove(component);}
		public void notify(){
			for(Observer 0:this.observers){
				o.update();
			}
		}
	}
	//具体被观察者
	public class ConcreteSubject{
		public void doSomething(){
			super.notify();//更新所有观察者
		}//具体业务
	}
JAVA的JDK中提供了观察者模式的实现接口, java.util.Observable实现类和java.util.Observer接口
<span style="white-space:pre">	</span>//具体观察者
	public class ConcreteObserver implements Observer{
		public void update(Observable observable, Object obj){//接口提供的更新函数
			//
		}
	}
	//具体被观察者
	public class ConcreteSubject extends Observable{
	//Observable实现类提供了增删观察者,通知观察者的方法
		public void doSomething(){
			super.setChanged();//Observable实现的通知所有观察者方法
		}//具体业务
	}
观察者和被观察者 抽象耦合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值