设计模式——Builder 模式
来源:互联网 发布:菜谱制作软件 编辑:程序博客网 时间:2024/06/06 04:31
我的总结:
Builder 模式为创建某个实体类,该实体类有过多属性需要配置,用Builder模式可以流式调用,也可以默认赋值,一下代码为项目中实际代码应用。
PayConfig类中有内部类Builder,Builder中有PayConfig的属性,Builder内部类中每个赋值方法返回Builder自己,Builder内部类中有个builder方法,最终通过PayConfig的private构造函数创建PayConfig实体类
public class PayConfig { private List<String> payWayList; private String frontEndUrl; private String weChatAppId; private String weChatOrderSignUrl; private String aliSignUrl; /** * 银联支付环境,"00" 正式环境 "01" 测试环境 */ private String upPayMode; /** * 银联订单获取url */ private String upOrderSignUrl; private String paySuccessBtnStr; private String payFailBtnStr; private PaySuccessCallBack paySuccessCallBack; private PayConfig(List<String> payWayList, String weChatAppId, String weChatOrderSignUrl, String aliSignUrl, String upPayMode, String upOrderSignUrl, String frontEndUrl, String paySuccessBtnStr, String payFailBtnStr, PaySuccessCallBack paySuccessCallBack) { this.payWayList = payWayList; this.weChatAppId = weChatAppId; this.weChatOrderSignUrl = weChatOrderSignUrl; this.aliSignUrl = aliSignUrl; this.upPayMode = upPayMode; this.upOrderSignUrl = upOrderSignUrl; this.frontEndUrl = frontEndUrl; this.paySuccessBtnStr = paySuccessBtnStr; this.payFailBtnStr = payFailBtnStr; this.paySuccessCallBack = paySuccessCallBack; } public static class Builder{ private List<String> payWayList; private String frontEndUrl; private String weChatAppId; private String weChatOrderSignUrl; private String aliSignUrl; /** * 银联支付环境,"00" 正式环境 "01" 测试环境 */ private String upPayMode; /** * 银联订单获取url */ private String upOrderSignUrl; private String paySuccessBtnStr; private String payFailBtnStr; private PaySuccessCallBack paySuccessCallBack; public Builder setupPayWay(List<String> payWayList){ this.payWayList = payWayList; return this; } public Builder setupWechatPay(String weChatAppId, String weChatOrderSignUrl){ this.weChatAppId = weChatAppId; this.weChatOrderSignUrl = weChatOrderSignUrl; return this; } public Builder setupAliPay(String aliSignUrl){ this.aliSignUrl = aliSignUrl; return this; } public Builder setupUpPay(String upPayMode, String upOrderSignUrl){ this.upPayMode = upPayMode; this.upOrderSignUrl = upOrderSignUrl; return this; } public Builder setupPayButton(String paySuccessBtnStr, String payFailBtnStr, PaySuccessCallBack paySuccessCallBack){ this.paySuccessBtnStr = paySuccessBtnStr; this.payFailBtnStr = payFailBtnStr; this.paySuccessCallBack = paySuccessCallBack; return this; } public Builder setuprontEndUrl(String frontEndUrl){ this.frontEndUrl = frontEndUrl; return this; } private void paramCheck(){ if (null == payWayList || payWayList.size() == 0){ payWayList = new ArrayList<>(); payWayList.add(PayConstans.PAYWAY_WECHAT); payWayList.add(PayConstans.PAYWAY_ALI); payWayList.add(PayConstans.PAYWAY_UP); } if (TextUtils.isEmpty(weChatAppId)) weChatAppId = PayConstans.WECHAT_ID; if (TextUtils.isEmpty(weChatOrderSignUrl)) weChatOrderSignUrl = PayConstans.PAY_ORDER_URL; if (TextUtils.isEmpty(aliSignUrl)) aliSignUrl = PayConstans.PAY_ORDER_URL; if (TextUtils.isEmpty(upPayMode)) upPayMode = PayConstans.UP_PAY_MODE; if (TextUtils.isEmpty(upOrderSignUrl)) upOrderSignUrl = PayConstans.PAY_ORDER_URL; if (TextUtils.isEmpty(paySuccessBtnStr)) paySuccessBtnStr = "支付完成"; if (TextUtils.isEmpty(payFailBtnStr)) payFailBtnStr = "再次支付"; if (TextUtils.isEmpty(frontEndUrl)) frontEndUrl = PayConstans.FRONT_END_URL; } public PayConfig builder(){ paramCheck(); PayConfig payConfig = new PayConfig(payWayList,weChatAppId,weChatOrderSignUrl,aliSignUrl ,upPayMode,upOrderSignUrl,frontEndUrl,paySuccessBtnStr,payFailBtnStr,paySuccessCallBack); return payConfig; } } public PaySuccessCallBack getPaySuccessCallBack() { return paySuccessCallBack; } public void setPaySuccessCallBack(PaySuccessCallBack paySuccessCallBack) { this.paySuccessCallBack = paySuccessCallBack; } public String getPaySuccessBtnStr() { return paySuccessBtnStr; } public void setPaySuccessBtnStr(String paySuccessBtnStr) { this.paySuccessBtnStr = paySuccessBtnStr; } public String getPayFailBtnStr() { return payFailBtnStr; } public void setPayFailBtnStr(String payFailBtnStr) { this.payFailBtnStr = payFailBtnStr; } public String getFrontEndUrl() { return frontEndUrl; } public void setFrontEndUrl(String frontEndUrl) { this.frontEndUrl = frontEndUrl; } public String getWeChatAppId() { return weChatAppId; } public void setWeChatAppId(String weChatAppId) { this.weChatAppId = weChatAppId; } public String getWeChatOrderSignUrl() { return weChatOrderSignUrl; } public void setWeChatOrderSignUrl(String weChatOrderSignUrl) { this.weChatOrderSignUrl = weChatOrderSignUrl; } public String getAliSignUrl() { return aliSignUrl; } public void setAliSignUrl(String aliSignUrl) { this.aliSignUrl = aliSignUrl; } public String getUpPayMode() { return upPayMode; } public void setUpPayMode(String upPayMode) { this.upPayMode = upPayMode; } public String getUpOrderSignUrl() { return upOrderSignUrl; } public void setUpOrderSignUrl(String upOrderSignUrl) { this.upOrderSignUrl = upOrderSignUrl; } public List<String> getPayWayList() { return payWayList; } public void setPayWayList(List<String> payWayList) { this.payWayList = payWayList; }}
阅读全文
0 0
- 设计模式8—Builder设计模式
- Java设计模式—Builder
- c++设计模式—Builder
- Builder模式——设计模式学习
- Android设计模式——Builder模式
- Java设计模式——Builder模式
- Android设计模式——Builder模式
- Android设计模式——Builder模式
- 设计模式——Builder模式
- Android设计模式——Builder模式
- 设计模式——Builder模式
- 设计模式——Builder模式
- 【设计模式】—— 创建者模式Builder
- java设计模式——Builder模式
- 设计模式——Builder 模式
- JAVA设计模式 — 生成器模式(Builder)
- 设计模式 — 生成器模式 (Builder)
- Android设计模式—Builder模式
- RxJava/RxAndroid详解
- n个数的阶乘
- 运用@Transactional,自己抛出异常时不会回滚的原因
- adb logcat的技巧
- 开发者必看:超全机器学习术语词汇表!
- 设计模式——Builder 模式
- ftp基础1
- 三星手机又陷“冒烟门”,航班起飞后冒烟;阅文集团IPO融资规模最多达11亿美元丨价值早报
- 创投日报:10月23日收录投融资项目14起
- 这位旅英年轻人,如何让“自如模式”出口到了英国?
- 羊毛党大揭秘:上亿黑卡在手,撸垮上市公司
- flume 启动不输出运行日志
- 图表Echarts配置项
- 三个数排序