策略模式

Updated on in 程序人生 with 0 views and 0 comments

1、简介

策略模式可以在运行时动态切换类的运行算法策略,将变化的算法策略封装,降低了代码耦合度,只需要根据不同情况更换不同策略即可。

例如:今天是2020-12-24平安夜,今晚去见女票,可以选择送花,也可以选择送苹果,平安夜就是算法使用环境,送花和送苹果就是不同的算法策略。

2、创建算法使用环境

public class ChristmasContext {
    private ChristmasStrategy christmasStrategy;
    public ChristmasContext(ChristmasStrategy christmasStrategy){
        this.christmasStrategy = christmasStrategy;
    }

    public void gift(){
        christmasStrategy.gift();
    }
}

3、创建抽象策略

public interface ChristmasStrategy {
    public void gift();
}

4、创建具体的策略

public class FlowerStrategy implements ChristmasStrategy{
    @Override
    public void gift() {
        System.out.println("送花");
    }
}
public class AppleStrategy implements ChristmasStrategy{
    @Override
    public void gift() {
        System.out.println("送苹果");
    }
}

5、测试不同的策略切换

public class TestStrategy {
    public static void main(String[] args){
        ChristmasContext christmasContext = new ChristmasContext(new FlowerStrategy());
        christmasContext.gift();

        christmasContext = new ChristmasContext(new AppleStrategy());
        christmasContext.gift();
    }
}

标题:策略模式
作者:wenyl
地址:http://www.wenyoulong.com/articles/2020/12/24/1608789577784.html