package com.hugnew.sps.services.pay.strategy; import com.hugnew.sps.enums.PayType; import java.util.HashMap; import java.util.Map; /** * 支付策略工厂 * Created by Martin on 2016/7/01. */ public class StrategyFactory { private static Map<Integer, PayStrategy> strategyMap = new HashMap<>(); static { strategyMap.put(PayType.ALIPAY_WEB.value(), new AlipayWebStrategy()); strategyMap.put(PayType.ALIPAY_APP.value(), new AlipayAppStrategy()); strategyMap.put(PayType.ALIPAY_WAP.value(), new AlipayWapStrategy()); strategyMap.put(PayType.UNION_WEB.value(), new UnionWebStrategy()); strategyMap.put(PayType.UNION_WAP.value(), new UnionWapStrategy()); strategyMap.put(PayType.UNION_APP.value(), new UnionAppStrategy()); strategyMap.put(PayType.PSBC_WEB.value(), new PSBCWebStragegy()); strategyMap.put(PayType.PSBC_WAP.value(), new PSBCWapStragegy()); strategyMap.put(PayType.CEB_WEB.value(), new CEBWebStragegy()); strategyMap.put(PayType.CEB_WAP.value(), new CEBWapStragegy()); strategyMap.put(PayType.CEB_GATEWAY_WEB.value(), new CEBGatewayPayStrategy()); strategyMap.put(PayType.CEB_GATEWAY_WAP.value(), new CEBGatewayPayWapStrategy()); strategyMap.put(PayType.WECHAT_APP.value(), new WechatPayAppStrategy()); } private StrategyFactory() { } private static class InstanceHolder { public static StrategyFactory instance = new StrategyFactory(); } public static StrategyFactory getInstance() { return InstanceHolder.instance; } public PayStrategy creator(Integer type) { return strategyMap.get(type); } }