观察者模式()
观察者模式是非常常用的一种设计模式在软件系统中当一个对象的行为依赖于另一个对象的状态时观察者模式就相当有用若不使用观察者模式提供的通用结构而需要实现其类似的功能则只能在另一个线程中不停监听对象所依赖的状态在一个复杂系统中可能会因此开启很多线程来实现这一功能这将使系统的性能产生额外的负担观察者模式的意义也就在此它可以在单线程中使某一对象及时得知自身所依赖的状态的变化观察者模式的经典结构如图所示
图 观察者模式结构
ISubject是被观察对象它可以增加或者删除观察者IOberver是观察者它依赖于ISubject的状态变化当ISubject状态发生改变时会通过inform()方法通知观察者
注意观察者模式可以用于事件监听通知发布等场合可以确保观察者在不使用轮询监控的情况下及时收到相关消息和事件
观察者模式的主要角色如表所示
表 观察者模式角色
主题接口的实现如下
[] []