您好,登录后才能下订单哦!
这篇“web观察者模式的实现效果有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“web观察者模式的实现效果有哪些”文章吧。
效果
实现面向不特定类型对象的通知
一般来讲通知也是一种调用,也就是说,当目标通知观察者的时候,通常的做法需要目标类了解观察者类的信息。观察者模式定义了观察者抽象接口,只要具体的观察者实现了观察者接口就可以加入到观察者队列中并接收目标的通知。也就是说作为通知者的目标类不需要了解具象观察者类的细节,从而实现了解耦。
实现面向不特定多数对象的通知
观察者对象都被登录到目标类的观察者列表中,目标类发出通知方法只是简单的依次调用列表中观察者对象的通知接口。无论这个列表中的观察者对象是多还是少,通知的方式都完全相同。观察者模式就是通过这种方式实现了面向不特定多数观察者的通知。
实现
拉模型还是推模型
所谓拉模型就是目标对象仅通知观察者有变化这件事,而详细内容由观察者自己从目标对象处取得;而推模型则是将变化的内容,尽量详细地随通知一起发送。拉模型扩展灵活,但效率偏低;而推模型效率虽高,但灵活性不足。两种方法各有利弊,需要根据实际情况进行取舍。作为一个折中的方案,在通知的时候同时带上变化的对象和变化的类型,很多时候都会是一个足够好的选择。
避免无效引用
观察者模式中的观察者接收通知的前提条件就是在目标对象中进行登录。当观察者不再需要接收目标对象的通知时就需要及时地取消登录。这一点一般不会发生严重的问题。初学者经常容易发生的问题是,当观察者对象被销毁时有可能会遗漏取消登录这件事,其结果就是通知时访问无效对象。另一种情况是,当观察者保持着目标对象的参照时,如果目标对象在观察者之前被销毁,也同样可能出现访问无效对象的情况。但是无论哪种问题,只要认真设计、保持良好的退出机制应该都不难解决。
以上就是关于“web观察者模式的实现效果有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。