码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之策略模式

时间:2019-02-09 20:56:53      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:策略模式   不同的   substr   div   客户   调用   就是   今天   vat   

    今天我们要介绍的设计模式叫做策略模式。策略模式其实就是把不同的策略(方法)封装在不同的类中。在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式(摘自菜鸟教程)。下面我们用代码来实现策略模式。

    1、首先定义一个策略的接口:

public interface Strategy {
    public int operating();
}

2.定义一些实现策略接口的实现类(具体的策略)。

public class AddOperation implements Strategy{
    @Override
    public int operating(int a,int b) {
        return a+b;
    }
}


public class SubstractOperation implements Strategy{
    @Override
    public int operating(int a,int b) {
        return a-b;
    }
}

3.定义一个Context 类。

public class Context {
    private Strategy strategy;

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public int executeStrategy(int a, int b) {
        return strategy.operating(a, b);
    }
}

4.客户端调用:

public static void main(String[] args) {
          Context context = new Context(new AddOperation());    
          System.out.println("12 + 5 = " + context.executeStrategy(12, 5));
     
          context = new Context(new SubstractOperation());      
          System.out.println("12 - 5 = " + context.executeStrategy(12, 5));
    }


代码执行结果:
12 + 5 = 17
12 - 5 = 7

在实际的开发中,策略模式通常与工厂模式混合使用。

设计模式之策略模式

标签:策略模式   不同的   substr   div   客户   调用   就是   今天   vat   

原文地址:https://www.cnblogs.com/suyang-java/p/10357947.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!