|
发表于 2019-3-7 13:14:12
|
显示全部楼层
demo:订阅报纸
) y& e9 G! T+ T+ @$ E' D特定问题:当一个对象的状态发生改变的时候,如何让依赖于它的所有对象得到通知。
- F; {( Z& b$ F( K. y% C" p解决方案:观察者模式
( \' U3 i0 s' B不使用模式的解决方案:
% _0 T2 S) {" t; Z
( e- j7 y( J" d9 A: C使用模式的解决方案:
5 T8 K0 Z$ I5 f# G+ b0 w
$ C) ~& C; e3 F; O& l扩展:推模型和拉模型、java中的观察者模式4 B; w/ k$ R& M1 C+ R
优点:观察者和目标之间的抽象耦合、实现了动态联动/ Y& c' x5 A' V* F3 L( v" ?' ?
缺点:可能会引起无谓的操作
, X0 J3 K- [: ]2 f; p) u8 a本质:触发联动。
+ t7 D5 [2 W u, k B' t& a0 L, _$ V适用场景:1、一方面的操作依赖于另一方面的状态变化。demo:订阅报纸9 f/ Q* f6 n" N+ {4 y
特定问题:当一个对象的状态发生改变的时候,如何让依赖于它的所有对象得到通知。
8 q9 |9 C N) G* s) r解决方案:观察者模式$ j# N5 F$ }$ c' S8 i' ?
不使用模式的解决方案:, a# H* U- f- |+ }6 b5 ]
/ k+ I- P5 t0 T$ R* `1 N; D
使用模式的解决方案:
+ i, C, U+ s/ T, q1 O1 x6 I$ N5 S' I7 u& n) {" O. `
扩展:推模型和拉模型、java中的观察者模式
8 ^: Z2 f4 G+ A! R. ?优点:观察者和目标之间的抽象耦合、实现了动态联动5 t4 C- S4 {. Z" n& O* b( Z9 t
缺点:可能会引起无谓的操作+ u- b, X9 P$ q# p5 \; t) D
本质:触发联动。3 y& @& O, `. u) k, D
适用场景:1、一方面的操作依赖于另一方面的状态变化。 |
|