美文网首页
观察者模式

观察者模式

作者: 今夜秋风和 | 来源:发表于2020-12-21 19:08 被阅读0次

    什么是观察者模式?

         定义了一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己;

    观察者模式特点以及应该何时来使用它?

    当一个对象改变需要同时改变其他对象,而我们不清楚要更新多少对象状态时,可以考虑使用此模式;

    另外,该模式的优点在于解除耦合,将通知者与观察者双方都依赖抽象接口,而不是真正具体的实例对象,比如: 通知者a 实例 中添加了观察者 a 实例,通知者b 实例添加了观察者b 实例,这样,在观察者 a 实例 发生变化时,只会修改自己,而不会影响到其他实例对象;

    类的结构图如下:

    Subject 作为通知者,定义了需要通知的接口,Observer 作为观察者,定义了当通知到来时,需要做的状态更新操作;

    将上述的结构用代码的形式来描述:

    通知接口定义:

    具体通知者实现:

    观察者接口定义:

    具体观察者实现:

    客户端测试:

    观察者模式不足:

     以上从一个例子介绍了观察者模式的实现方式,可以看到,通知者和观察者需要提前进行绑定,对于两者提前未知的状态下,这个模式就存在了不足之处,也就是说,通知者提前若不知晓具体观察者的情况下,通知怎么才能被响应到,进而触发执行,下一次我们来分析另一种处理方式,事件委托方式;

    相关文章

      网友评论

          本文标题:观察者模式

          本文链接:https://www.haomeiwen.com/subject/swjknktx.html