一、定义:
策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。
策略模式通常把一系列的算法包装到一系列的策略类里,作为一个抽象的策略类的子类。
一句话形容:准备一组算法,并将每一个算法封装起来,使得它们可以互换。
二、应用场景:
基于复杂和多样的算法的逻辑。比如:给订单进行运费运算,可将各种配送方式的运费算法封装到多个策略类里。
三、代码示例
1、抽象的策略(角色)类
2、具体的策略类
策略类一般会有多个,根据不同的算法来写.
3、运算类
4、测试
策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。
策略模式通常把一系列的算法包装到一系列的策略类里,作为一个抽象的策略类的子类。
一句话形容:准备一组算法,并将每一个算法封装起来,使得它们可以互换。
二、应用场景:
基于复杂和多样的算法的逻辑。比如:给订单进行运费运算,可将各种配送方式的运费算法封装到多个策略类里。
三、代码示例
1、抽象的策略(角色)类
public abstract class Operation{
public abstract void operate(float a,float b);
}
2、具体的策略类
public class Add extends Operation{
//实现父类的抽象方法
public void operate(float a, float b){
fload result = a +b;
System.out.println("相加的结束等于:"+result);
}
}
策略类一般会有多个,根据不同的算法来写.
3、运算类
public class Calculate{
private Operation o;
public final static Operation add = new Add();
public final static Operation minus = new Minus();//减法
public void operate(float a,float b){
o.operate(a,b);
}
}
4、测试
public class Test{
public static void main(String[] args){
float a = 100;
float b = 25;
Calculate cal = new Calculate();
cal.add.operate(a,b);
}
}