设计模式的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