策略模式的定义
定义一组算法,将每个算法都封装起来,并且使他们之间可以“互换”。
策略模式:主要的功能作用就是能快速的切换选择
举例
1.属性动画的setInterpolator
//随意切换设置插值器
objectAnimator.setInterpolator(new DecelerateInterpolator());
objectAnimator.setInterpolator(new LinearInterpolator());
2.RecyclerView的setLayoutManager
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setLayoutManager(new GridLayoutManager(this,3));
3.Glide 的缓存策略等
代码实现
1.假设你是一位侦探记录一个人每个吃什么中午饭
先定义一个吃饭的接口
public interface PersonEat {
void eat();
}
他可以吃黄焖鸡、烧鹅饭、手撕鸡等
public class EatHuangMengJi implements PersonEat {
@Override
public void eat() {
Log.d("今天","他吃黄焖鸡");
}
}
public class EatShaoEr implements PersonEat{
@Override
public void eat() {
Log.d("今天","他吃烧鹅饭");
}
}
public class EatShouSiJi implements PersonEat {
@Override
public void eat() {
Log.d("今天","他吃手撕鸡饭");
}
}
侦探可以方便的记录下他每天吃什么
//1月1日 他吃烧鹅饭
PersonEat personEat = new EatShaoEr();
personEat.eat();
//1月2日 他吃黄焖鸡
PersonEat personEat1 = new EatHuangMengJi();
personEat1.eat();
策略模式就是可以让我们可以快速的切换策略。
网友评论