什么是观察者模式?

观察者模式:其实所谓的观察者模式也就是为了实现松耦合。

观察者模式的优点:

                        1.观察者模式在观察者和被观察者之间建立一个抽象的耦合。

                        2.建立了一套触发机制

观察者模式的缺点:

                        1.如果一个被观察者有很多直接或者是间接的观察者的话,那么的话所有的观察者要通知到会浪费很多时间

                        2.如果在被观察者之间有循环依赖的话,被观察者会触发它们之间进行循环调用,导致系统崩溃。在使用观察者模式是要特别注意这一点。

                        3.如果对观察者的通知是通过另外的线程进行异步投递的话,系统必须保证投递是以自恰的方式进行的。

                        4.虽然观察者模式可以随时使观察者知道所观察的对象发生了变化,但是观察者模式没有相应的机制使观察者知道所观察的对象是怎么发生变化的。

转载:https://www.cnblogs.com/pjl1119/p/9727444.html

应用实例:

        例如:拍卖的时候,拍卖师观察最高标价,然后通知给其他竞价者竞价。

使用场景:

        1.一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这些方面封装在独立的对象中使它们可以各自独立地改变和复用。

        2.一个对象的改变将导致其他一个或多个对象也发生改变,而不知道具体有多少对象将发生改变,可以降低对象之间的耦合度。

        3.一个对象必须通知其他对象,而并不知道这些对象是谁。

注意事项:

         1、JAVA 中已经有了对观察者模式的支持类。

        2、避免循环引用。 3、如果顺序执行,某一观察者错误会导致系统卡壳,一般采用异步方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值