首页 > 其他 > 详细

策略模式(行为型)

时间:2020-11-28 14:27:16      阅读:16      评论:0      收藏:0      [点我收藏+]

 

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!