|
发表于 2019-3-7 13:14:12
|
显示全部楼层
demo:订阅报纸7 Y3 q/ |( J1 G2 R$ R8 I$ J. U6 P4 f
特定问题:当一个对象的状态发生改变的时候,如何让依赖于它的所有对象得到通知。
0 O. v- ]$ D8 e; m解决方案:观察者模式! u$ [0 T$ G k8 X% _
不使用模式的解决方案:
! }5 t! e5 K( u( s
5 t+ K, U7 R. |7 {使用模式的解决方案:$ P: L$ y1 I8 u6 t) e
0 w1 F& o. K/ I* ^- s+ Q扩展:推模型和拉模型、java中的观察者模式
/ Z+ L: \9 z, \( G N1 Q9 }优点:观察者和目标之间的抽象耦合、实现了动态联动6 F2 i9 E$ ~& a, h' p7 B# K
缺点:可能会引起无谓的操作 V' U/ y8 I( X. P3 Z" Z1 \' r
本质:触发联动。
% ]8 z/ D1 y& p+ s+ E7 j6 M适用场景:1、一方面的操作依赖于另一方面的状态变化。demo:订阅报纸* r0 Q. C& X( L+ q) m( L
特定问题:当一个对象的状态发生改变的时候,如何让依赖于它的所有对象得到通知。
7 q& d- U/ q5 O+ L& a( `+ X解决方案:观察者模式
3 P a# l/ d7 o8 @+ l5 X不使用模式的解决方案:
; i, U: G% E, B$ Y; K6 X2 j7 G
' q K$ R. g$ j$ j7 D使用模式的解决方案:
. x- z! u9 B6 l; R+ j" s. p
5 Y* [3 g" D5 P/ n8 p/ r4 v扩展:推模型和拉模型、java中的观察者模式" z3 ]9 W% ]0 h6 r# T# {
优点:观察者和目标之间的抽象耦合、实现了动态联动. s8 V! z3 K y- U& d9 }% P! K; R% G
缺点:可能会引起无谓的操作5 E1 [. F) B/ ]8 ~) Q
本质:触发联动。
$ {' y1 u {# R适用场景:1、一方面的操作依赖于另一方面的状态变化。 |
|