《Android源码设计模式》--策略模式

No1:

定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。

No2:

使用场景

1)针对同一类型问题的多种处理方式,仅仅是具体行为有差别时

2)需要安全的封装多种同一类型的操作时

3)出现同一抽象类有多个子类,而又需要使用if-else或者switch-case来选择具体子类时

No3:

TimeInterpolator时间插值器的作用是根据时间流逝的百分比来计算出当前属性值改变的百分比,系统预置的有

1)线性插值器(LinearInterpolator):用于匀速动画

2)加速减速插值器(AccelerateDecelerateInterpolator)用于起始时动画加速,结尾时动画减速

3)减速插值器(DecelerateInterpolator):用于随着时间的推移动画越来越慢,即减速动画

No4:

TypeEvaluator类型估值器

时间插值器计算得到当前时间点的时间流逝百分比,TypeEvaluator根据这个百分比、属性起始值、目标值来计算出当前时刻该属性的值,最后这个值被设置给View,不断地重复这个过程就形成了动画。

系统预置的有整形属性(IntEvaluator)、浮点型属性(FloatEvaluator)和Color属性(ArgbEvaluator)

No5:

ValueAnimator流程图

No6:

ObjectAnimator流程图

No7:

缺点:随着策略的增加,子类也会变得繁多

原文地址:https://www.cnblogs.com/anni-qianqian/p/7762730.html