package per.mjn.pattern.strategy;
// 抽象策略类
public interface Strategy {
void show();
}
package per.mjn.pattern.strategy;
// 具体策略类,用来封装算法
public class StrategyA implements Strategy {
@Override
public void show() {
System.out.println("买一送一");
}
}
package per.mjn.pattern.strategy;
// 具体策略类,用来封装算法
public class StrategyB implements Strategy {
@Override
public void show() {
System.out.println("满200元减50元");
}
}
package per.mjn.pattern.strategy;
// 具体策略类,用来封装算法
public class StrategyC implements Strategy {
@Override
public void show() {
System.out.println("满1000元加一元换购任意200元以下商品");
}
}
package per.mjn.pattern.strategy;
// 促销员(环境类)
public class SalesMan {
// 聚合策略类对象
private Strategy strategy;
public SalesMan(Strategy strategy) {
this.strategy = strategy;
}
// 由促销员展示促销活动给用户
public void salesManShow() {
strategy.show();
}
}
package per.mjn.pattern.strategy;
public class Client {
public static void main(String[] args) {
// 春节来了,使用春节促销活动
SalesMan salesMan = new SalesMan(new StrategyA());
// 展示促销活动
salesMan.salesManShow();
}
}