设计模式 一一一 观察者模式

观察者模式(Observer)
	概念:
		又叫做发布-订阅(publish-subscribe)模式。
		多个观察者同时监听某一个对象,当这个对象发生变化时,这个对象会通知所有感兴趣的观察者,以便于他们能够做出相应的处理。
	

jdk中的观察者模式:
	Observer	观察者
		说明:观察(监听)着感兴趣的对象,通过将自身注册到感兴趣的对象中,并且由感兴趣的对象发通知来实现观察(监听)的效果。收到通知后,根据通知的内容做相应的处理。
	Observable 	被观察者
		说明:维护者对自身感兴趣的观察者,并且可以将自身的情况通知给观察者。
	
    /**
     * 被观察者Observable
     */	
	public class Observable {

		/**
		 * 维护着注册到自身的观察者列表
		 */	
		private Vector<Observer> obs; // 观察者注册表

		/**
		 * 当自身(即被观察的对象)发送变化时,依次通知注册表中的观察者
		 */	
		public void notifyObservers() {
			// 说明:下面是简化后的代码,可以使逻辑看起来更清晰一些。
			Object[] arrLocal = obs.toArray();
			for (int i = arrLocal.length-1; i>=0; i--)
				((Observer)arrLocal[i]).update(this, arg);
		}
	}

    /**
     * 观察者Observer
     */	
	public interface Observer {
		/**
		 * This method is called whenever the observed object is changed. 
		 * An application calls an Observable object's notifyObservers method to have all the object's observers notified of the change.
		 *
		 * @param   o     the observable object.
		 * @param   arg   an argument passed to the <code>notifyObservers</code> method.
		 */
		void update(Observable o, Object arg);
	}
			
		
		
spring中的观察者模式:
	spring中的事件机制就是基于观察者模式进行设计的。
	https://blog.csdn.net/wodewutai17quiet/article/details/93920229
	
	
	

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值