设计模式(五):策略模式
一、介绍
策略模式的类图
策略模式是处理算法不同变体的一种成熟模式,策略模式通过接口或抽象类封装算法的标识,即在接口中定义一个抽象方法,实现该接口的类将实现接口中的抽象方法。策略模式把针对一个算法标识的一系列具体算法分别封装在不同的类中,使得各个类给出的具体算法可以相互替换。
在策略模式中,封装算法标识的接口称作策略,实现该接口的类称作具体策略。
二、实现
假设,我们现在在为一家超市做收银系统,刚好超市这段时间做促销活动,有以下几种活动策略:
- 满200返50
- 满300返100
- 满500返200
1.定义一个策略接口
//策略接口
public interface Stragety {
double cost(double money);
}
2.根据三种活动策略,创建三种策略实现类(后面还可以和其他设计模式结合,简化代码)
//满200返50
public class StrategyA implements Stragety {
@Override
public double cost(double money) {
if(money>=200)