设计模式的3个分类:创建型模式、结构型模式、行为型模式
策略模式定义:
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
策略模式图示:

代码实现:
//定义策略接口
public interface Strategy {
    int operation(int num1, int num2);
}
public class ConcreteStrategyA implements Strategy{
    @Override
    public int operation(int num1, int num2) {
        return num1 + num2;
    }
}
public class ConcreteStrategyB implements Strategy{
    @Override
    public int operation(int num1, int num2) {
        return num1 * num2;
    }
}
public class Context {
    private Strategy strategy;
    public Context(Strategy strategy) {
        this.strategy = strategy;
    }
    public int executeOperation(int num1, int num2) {
        return strategy.operation(num1, num2);
    }
}
//Test
public class StrategyPatternDemo {
    public static void main(String[] args) {
        int num1 = 5;
        int num2 = 10;
        Strategy strategy = new ConcreteStrategyA();
        Context context = new Context(strategy);
        int result = context.executeOperation(num1, num2);
        System.out.println("result = " + result);//result = 15
        strategy = new ConcreteStrategyB();
        context = new Context(strategy);
        result = context.executeOperation(num1, num2);
        System.out.println("result = " + result);//result = 50
    }
}
思考:
策略模式还是很常见的,像一个项目招标,在明确了需求之后,投标方会根据需求进行项目的模拟实现。招标单位集中所有的投标资料,分别进行对比,最终确定最合适的方案。
《三十六计》由两大类,然后分出六套,再细化到36个具体计策。
优势:胜战计、敌战计、攻战计(3大类再扩展出:瞒天过海、以逸待劳等)
劣势:混战计、并战计、败战计(3大类再扩展出:空城计、苦肉计等)
当两军交战时,决策者可以根据敌我双方实际情况判断己方是处于优势还是劣势,灵活的使用具体的计策。
--End
原文:https://www.cnblogs.com/heibingtai/p/14052406.html