Skip to content

Commit ff365d5

Browse files
committed
增加了安卓中运用策略模式的例子
1 parent 899fe6f commit ff365d5

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/com/company/strategy/summary.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,21 @@
1717
1.Context 用来操作策略的上下文
1818
2.Strategy 策略或者算法的抽象 ,是个接口
1919
3.ConcreteStrategyA ConcreteStrategyB
20+
21+
例子中的乘车:如果需要添加出租车的算法,新建类实现对应的CalculateStrategy接口,然后在对应的地方
22+
注入不同的算法。
23+
24+
安卓中的应用场景:插值器 估值器
25+
插值器:根据时间流逝百分比来计算出当前属性值改变的百分比
26+
估值器:根据当前属性改变的百分比来计算改变后的属性
27+
28+
策略模式主要用来分离算法,在相同的行为抽象下有不同的具体实现策略。这个模式很好的演示了开闭原则,
29+
也就是定义抽象。注入不同的实现,从而达到很好的可扩展性
30+
31+
优点:
32+
1.结构清晰明了,使用简单直观
33+
2.耦合度相对较低,扩展方便
34+
3.操作封装也更为彻底,数据更为安全
35+
36+
缺点:
37+
随着策略的增加,子类也会变得繁多

0 commit comments

Comments
 (0)