1.定义
定义了一系列算法,并将每种算法都单独封装起来,而且算法之间可以相互切换
2.示例
public interface IFinance {
void finance(int money,int month);
}
public class AlipayFinance implements IFinance {
@Override
public void finance(int mount,int month) {
System.out.println("支付宝理财");
}
}
public class TecentFinance implements IFinance {
@Override
public void finance(int money, int month) {
System.out.println("腾讯理财");
}
}
public void main(){
//1.理财一
IFinance finance = new AlipayFinance();
finance.finance(10000,12);
//2.理财二
IFinance finance1 = new TecentFinance();
finance1.finance(10000,12);
//3.理财N
}
3.使用场景
第三方:Glide缓存策略;imageLoader的生成图片文件的命名策略;timbber日志打印工具,okhttp源码
源码中:属性动画源码,setInterpolator插值器
RecycleView:setLayoutManager(listview样式,gridView样式,瀑布流样式)
4.总结
实质就是方法抽象相同,而具体的实现不一样的时候,可以考虑使用策略模式。方便后期的扩展