对于许久不用的东西,容易忘记。百度许久,也未能找到自己所要。 从今日起,有些东西就记载下来,不仅方便自己,希望能帮到他人吧
最近开发一款电商App,对于商家推出的活动焦头烂额,好歹想起了设计模式中的策略模式,从容的解决这种问题。
商家的活动:
1.满100减10元。
2.三件8.5折。
3.五件送一件最近价格商品。
…
最开始使用swich,后来越来越多case,代码繁杂且不易修改,耦合性高。你见过10多个case吗,我的代码曾经就是这样,哈哈。
使用策略模式该怎么书写呢?
1.商家的活动属于同一种类,也就是无数个case,那第一步写一个接口。
package com.yancy.model;
public interface IStrategy {
void strategy();
}
2.不论商家活动如何改变,我只需增加类实现接口,耦合性大大降低,代码不再堆积。
活动一:满100减10元。
package com.yancy.action;
import com.yancy.model.IStrategy;
/**
* 满100减10元
*
* @author yancy
*
*/
public class FullReduction implements IStrategy {
public