【文件属性】:
文件名称:使用情况-vue不通过路由直接获取url中参数的方法示例
文件大小:1.31MB
文件格式:PDF
更新时间:2021-06-07 18:30:46
java 设计模式 单例模式 工厂模式
四、使用情况
GOF 给出了以下使用观察者模式的情况:
1) 当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立
的对象中以使它们可以各自独立地改变和复用。
2) 当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。
3) 当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之, 你不希望
这些对象是紧密耦合的。
五、我推你拉
观察者模式在关于目标角色、观察者角色通信的具体实现中,有两个版本。一种情况便
是目标角色在发生变化后,仅仅告诉观察者角色“我变化了”;观察者角色如果想要知道具体
的变化细节,则就要自己从目标角色的接口中得到。这种模式被很形象的称为:拉模式——
就是说变化的信息是观察者角色主动从目标角色中“拉”出来的。
还有一种方法,那就是我目标角色“服务一条龙”,通知你发生变化的同时,通过一个参
数将变化的细节传递到观察者角色中去。这就是“推模式”——管你要不要,先给你啦。
这两种模式的使用,取决于系统设计时的需要。如果目标角色比较复杂,并且观察者角
色进行更新时必须得到一些具体变化的信息,则“推模式”比较合适。如果目标角色比较简单,
则“拉模式”就很合适啦。