|
发表于 2019-3-7 13:14:12
|
显示全部楼层
demo:订阅报纸6 p- p) z3 \. r' N% O- k
特定问题:当一个对象的状态发生改变的时候,如何让依赖于它的所有对象得到通知。
* M0 G$ x' o0 y' E' i4 q8 ~解决方案:观察者模式9 g, y& i% ~1 [3 E9 I2 ?; L
不使用模式的解决方案:' W/ C( Z$ }7 {8 P
2 F3 O% [$ A+ [
使用模式的解决方案:
; n0 d: V/ U5 H2 B. @4 N* l2 e1 V& Y
扩展:推模型和拉模型、java中的观察者模式4 S9 j% t/ q X7 f: j' R
优点:观察者和目标之间的抽象耦合、实现了动态联动4 v r$ ?: a4 a, z4 P- q0 H
缺点:可能会引起无谓的操作% P8 @, j1 o7 R3 C! Y0 f/ g* p- F
本质:触发联动。 h% l" ?; {9 U( z5 r
适用场景:1、一方面的操作依赖于另一方面的状态变化。demo:订阅报纸
4 U% I2 _7 _; [: y4 R/ r特定问题:当一个对象的状态发生改变的时候,如何让依赖于它的所有对象得到通知。$ H# L0 h" f: Q2 b, ^
解决方案:观察者模式* R, W; L9 s3 S3 K. j
不使用模式的解决方案:
/ [% \. i) W9 [# t9 C3 K+ D' v# `3 d. ^: C; V; ?5 T
使用模式的解决方案:: ?3 h1 g9 d! J1 M8 _# Z
7 B& V& C% a/ ^, z( _5 |# Q9 b扩展:推模型和拉模型、java中的观察者模式
' v/ d" N9 L' y Z' V! C优点:观察者和目标之间的抽象耦合、实现了动态联动
* y* c, K4 i. t% N缺点:可能会引起无谓的操作* T2 Z3 }& n; }4 f1 ?" K$ |# v+ y
本质:触发联动。0 b+ b+ S0 E$ S
适用场景:1、一方面的操作依赖于另一方面的状态变化。 |
|