观察者模式Observer
广播机制的场景:
场景:
聊天室程序的创建。服务器创建好后,A,B,C三个客户端连上来公开聊天。A向服务器发送数据,服务器端聊天数据改变。我们希望将这些聊天数据分别发给其他在线的客户。也就是说,每个客户端需要更新服务器端得数据。
网站上,很多人订阅了“Java主题”的新闻。当有这个主题新闻时,就会将这些新闻发给所有订阅的人。
大家一起玩CS游戏时,服务器需要将每个人的方位变化发给所有的客户
上面这些场景,我们都可以使用观察者模式来处理。我们可以把多个订阅者,,客户称之为观察者:需要同步给多个订阅者的数据封装在对象中,称之为目标。
核心:
观察者模式主要用于1:N的通知。当一个对象(目标对象Subject或者ObjServable)的状态变化时,他需要及时告知一系列对象(观察者对象,Observer),令他们做出响应
通知观察者的方式:
推:
每次都会把通知以广播方式发送给所有观察者,所有观察者只能被动接受
拉:
观察者只要知道有情况变化即可至于什么时候获取内容获取什么内容,都可以自主决定。
原文地址:http://blog.csdn.net/lk142500/article/details/45102509