策略模式-Java实现


模式定义

策略模式(Strategy Pattern):定义一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。

概念解析:意思就是我们解决一个可能有多种解决方法(即算法)的问题的时候,我们可以先把不同的解决方法实现,然后根据具体的情况选用不同的解决方法。

Java中的策略模式

模式类图:

 

使用场合:

(1)、当多个类的表现行为不同,需要在运行时动态的选择具体要执行的行为的时候。

(2)、需要在不同的情况下使用不同的策略,或者还可能在未来用其他方式实现的时候。

(3)、需要隐藏具体策略的实现细节,各个具体策略彼此独立的时候。

(4)、当一个类有多种行为,而且要在执行的时候用判断语句选择具体的行为的时候,可以运用策略模式将各个条件里面的动作,用具体的策略类来实现。

实例分析:商场打折促销的例子。促销方式:

1、打八折促销商品。

2、满1000元减200促销商品。

3、满200元,高于200元的部分打8折促销商品。

在商场促销活动中,用户可以根据自己的实际情况选择具体的打折方式。如有的商品打八折促销,有的商品满1000减200,有的商品满200高于200的部分打八折。用户则根据自己的具体需求选择不同的商品,然后结账的时候跟据不同的商品的促销方式的不同来计算具体消费费用。

策略模式实现过程应注意以下几点内容:

(1)、需要一个总体结构负责保存当前的具体策略,然后在具体的使用方法中调用具体策略实现相应的算法。

(2)、可以在适当的时候改变当前策略。

(3)、每一种条件分支作为一个具体策略算法单独实现。

代码实现(java):

//策略接口
public interface Istrategy {
//计算实际价格的方法
public double realPrice(double consumePrice);
}

 

//8折促销
public class RebateStrategy  implements Istrategy {
 private final double rate;
 
 public RebateStrategy(){
  this.rate=0.8;
 }
 
 public double realPrice(double consumePrice){
  return consumePrice *this.rate;
 }
}

更多详情见请继续阅读下一页的精彩内容:

推荐阅读:

Java类类型的存储特点

Java中两种单例模式小结

单例模式(Singleton Pattern)

Java单例模式实例---读取配置文件

  • 1
  • 2
  • 下一页

相关内容