设计模式

设计模式-策略模式

2020-05-08  本文已影响0人  isLJli

策略模式的定义

定义一组算法,将每个算法都封装起来,并且使他们之间可以“互换”。
策略模式:主要的功能作用就是能快速的切换选择

举例

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();

策略模式就是可以让我们可以快速的切换策略。

上一篇 下一篇

猜你喜欢

热点阅读