策略模式

2019-04-24  本文已影响0人  yym_439

定义

类型:行为型

使用场景

优缺点

优点:

缺点:

策略和工厂模式结合

public class PromotionStrategyFactory {

    private static Map<String, PromotionStrategy> PROMOTION_STRATEGY = new HashMap<String, PromotionStrategy>();

    static {
        PROMOTION_STRATEGY.put(PromotionKey.MANJIAN, new ManJianPromotionStrategy());
        PROMOTION_STRATEGY.put(PromotionKey.LIJIAN, new LiJianPromotionStrategy());
        PROMOTION_STRATEGY.put(PromotionKey.FANXIAN, new FanXianPromotionStrategy());
    }

    private static PromotionStrategy EMPRT_PROMOTION = new EmptyPromotionStrategy();

    private PromotionStrategyFactory() {
    }

    public static PromotionStrategy getPromotionStrategy(String PromotionKey) {
        PromotionStrategy promotionStrategy = PROMOTION_STRATEGY.get(PromotionKey);
        return promotionStrategy == null ? EMPRT_PROMOTION : promotionStrategy;
    }

    private interface PromotionKey {
        String LIJIAN = "LIJIAN";
        String MANJIAN = "MANJIAN";
        String FANXIAN = "FANXIAN";
    }
}

UML类图

image.png
上一篇下一篇

猜你喜欢

热点阅读