栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java工厂模式加策略模式实现动态选择类例子

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java工厂模式加策略模式实现动态选择类例子

1.工厂模式加策略模式实现动态选择类


public interface RefundIdentifyService {
    CommonNotify toRefund(RefundModel refundModel);
}




//支付宝退款实现
@AllArgsConstructor
@Service
public class AliIdentifyService implements RefundIdentifyService {

    private final RefundUtil refundUtil;

    @PostConstruct
    private void init() {
        //注册类型
        RefundIdentifyFactory.register(1, this);
    }


    @Override
    public CommonNotify toRefund(RefundModel refundModel) {
           //todo something
            return new CommonNotify(false, response.getSubMsg());
        }
    }


//微信退款实现
@AllArgsConstructor
@Service
public class WxIdentifyService implements RefundIdentifyService {

    private final RefundUtil refundUtil;

    @PostConstruct
    private void init() {
       //注册类型
        RefundIdentifyFactory.register(2, this);
    }


    @Override
    public CommonNotify toRefund(RefundModel refundModel) {
      //todo something
        return refundUtil.wxRefund(wxRefund);
    }
}


//设置工厂

public class RefundIdentifyFactory {

    private static Map ocrFactory = new HashMap<>();

    
    public static void register(Integer type, RefundIdentifyService refundIdentifyService) {
        if (null != type) {
            ocrFactory.put(type, refundIdentifyService);
        }
    }

    
    public static RefundIdentifyService createObj(Integer type) {
        return ocrFactory.get(type);
    }
}

//调用
CommonNotify commonNotify = RefundIdentifyFactory.createObj(orderInfo.getType()).toRefund(refundModel);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340757.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号