什么是策略设计模式
创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式,策略其实就是传递到方法中的参数对象,它的核心思想是把算法抽取出来放到一个独立的对象中。
策略使用步骤:
- 定义策略接口
- 定义策略类
- 使用策略
//定义策略接口
interface Strategy{
void operate();
}
//定义策略类1
class Strategy1 implements Strategy{
@Override
public void operate() {
System.out.println("这是策略一");
}
}
//定义策略类2
class Strategy2 implements Strategy{
@Override
public void operate() {
System.out.println("这是策略二");
}
}
//定义策略3
class Strategy3 implements Strategy{
@Override
public void operate() {
System.out.println("这是策略三");
}
}
public class TestStrategy {
public static void useStrategy(Strategy strategy){
strategy.operate();
}
public static void main(String[] args){
//根据不同需求使用不同的策略
useStrategy(new Strategy1());
//useStrategy(new Strategy2());
//useStrategy(new Strategy3());
}
}
策略的优缺点
优点 :使策略逻辑和客户处理分离,可以动态改变对象的行为
缺点 :当策略多的时候,会有很多的策略类