动机:
完成一项任务有多种不同的方式,我们可以根据环境的不同选择不同的策略完成该任务。
定义:
模式结构:
策略模式包括如下角色:
实例:
抽象策略与具体策略:
//抽象策略
public abstract class PaiX {
public abstract void SuanF();
}
//具体策略
public class MaoPPX extends PaiX{
@Override
public void SuanF() {
System.out.println("进行冒泡排序!");
}
}
public class KuaiXPX extends PaiX{
@Override
public void SuanF() {
System.out.println("进行快速排序!");
}
}
环境类:
public class Context {
private PaiX paiX;
public void setPaiX(PaiX paiX) {
this.paiX = paiX;
}
public void SuanF()
{
paiX.SuanF();
}
}
客户端:
public class Client {
public static void main(String[] a)
{
Context context = new Context();
PaiX paiX;
paiX = new KuaiXPX();
context.setPaiX(paiX);
context.SuanF();
}
}
策略模式适应情况: