前言
观察者的学习又是一次新的收获,对于设计模式越发好奇,能够更多的体会到,这些设计方式是前辈们不断尝试思考得出 的宝贵方法,针对特定的抽象的问题制定出目前可靠性维护性极佳的一种编程方式。
观察者解决的问题
那么从解决问题的角度来看,观察者可以帮我们搞定什么样的问题呢? 信息交互
实际应用举例:关注的微信公众号 ; 订阅的邮件 等。
解决方式
在JAVA代码实现中渐渐感受到,更据具体环境使用情况的不同,主要有两种方式来解决,第一种就像我们常用的“订阅”,有一方更据状态将信息推送出去。第二种是由需求方通过Get方法主动获取。这两种都是交互信息的方式。然而都有不同的特性。
订阅
可以通过观察者模式建立接口实现松耦合提高维护性,可以实现动态的增加移出订阅者,是观察者模式中常用的一种方式。然而在Subject与布告板的Demo中,存在着一定问题,只有当Subject获取了完整的新信息时才会推送到布告板,然而当布告板数量增多需要的信息不同时会出现信息推送不及时。
获取
信息的主动获取是我在没有学到观察者模式时常用的Get方法,在代码实现中确实可以