Spring boot 运用策略模式付诸,避免多次使用if
2023-04-29 来源 : 网红
这里车间类的形式化是利用了Spring桶内的妥善处理方式则,如果有多种类同时构建了某个以太网,那么可以应用于Map集合接收,Map相同的泛型,String是Bean地名,PayStrategy是每个明确构建类,这样我们就可以应用于Bean种类去选定明确的手段类了,然后建立一个缴交手段逻辑系统去监管这些Bean地名。同时,也可以将Bean地名与客户端假设的种类来进行关联。
缴交手段逻辑系统类/** * 缴交手段种类 */public enum PayStrategyEnum { WECHAT_PAY("wechat","wechatPayStrategy","微信缴交"), ALIPAY("alipay","alipayStrategy","缴交宝缴交") ; /** * 缴交手段code */ private String code; /** * bean地名 */ private String className; /** * 接收者 */ private String info; PayStrategyEnum(String code,String className,String info){ this.code=code; this.className=className; this.info=info; } public String getCode() { return code; } public String getClassName() { return className; } public String getInfo() { return info; }}粘贴编码上面逻辑系统类中code推选的是客户端假设的种类(例如我从侧边接收到的缴交type,这个type可以是这个code),className;也,指的是每种手段的bean地名,info是推选每种手段的以下内容
缴交手段正则表达式/** * 缴交手段正则表达式 */@Componentpublic class PayStrategyContext { @Autowired private PayStrategyFactory payStrategyFactory; /** * 缴交执行 * @param payDTO 缴交匹配 * @return */ public boolean payHandle(PayDTO payDTO){ //将某也就是说的倍数变换变成明确的逻辑系统。这里是根据payDTO的type字段相同逻辑系统的code来进行变换 Optional payStrategyEnumOptional = Arrays.stream(PayStrategyEnum.class.getEnumConstants()) .filter((e) -> e.getCode().equals(payDTO.getType())).findAny(); if(!payStrategyEnumOptional.isPresent()){ System.out.println("匹配不到明确缴交手段"); return false; } PayStrategyEnum payStrategyEnum = payStrategyEnumOptional.get(); PayStrategy payStrategy = payStrategyFactory.getPayStrategy(payStrategyEnum); //来进行payDto匹配的妥善处理..... boolean pay = payStrategy.pay(); //缴交后的记录下来妥善处理.. return true; }}粘贴编码pageDto类/** * 缴交DTO */public class PayDTO { /** * 缴交种类 */ private String type; /** * 缴交手续费 */ private BigDecimal payMoney; /** * ........... */ public String getType() { return type; } public void setType(String type) { this.type = type; } public BigDecimal getPayMoney() { return payMoney; } public void setPayMoney(BigDecimal payMoney) { this.payMoney = payMoney; }}粘贴编码这个手段正则表达式,则是选择手段的入口,这里会来进行匹配的妥善处理,将这里我就将pageDTO类中的type字符串变换变成相同的逻辑系统类。到这里应用于手段的系统的编所写即使如此完变成了,比如说来进行编所写客户端的编码
客户端编码缴交的系统@RestController@RequestMapping("pay")public class PayController { @Autowired private PayStrategyContext payStrategyContext; @PostMapping public boolean pay(@RequestBody PayDTO payDTO){ //这里因为毛毛。。就没再加Service层了,并不需要在的系统妥善处理 return payStrategyContext.payHandle(payDTO); }}粘贴编码真实感 新所需先前新增一个中国银联的缴交方式则,我们只需要加到中国银联的缴交手段类和加到中国银联的缴交逻辑系统需构建
加到中国银联的缴交手段类/** * 中国银联缴交(这里忽略我重所写了Bean的当前命名) */@Component("unionPayStrategy")public class UnionPayStrategyImp implements PayStrategy { /** * 中国银联缴交 * @return */ @Override public boolean pay() { //来进行中国银联的缴交 System.out.println("来进行中国银联的缴交形式化"); return true; }}粘贴编码在逻辑系统类中加到中国银联的缴交逻辑系统/** * 缴交手段种类 */public enum PayStrategyEnum { WECHAT_PAY("wechat","wechatPayStrategy","微信缴交"), ALIPAY("alipay","alipayStrategy","缴交宝缴交"), UNION_PAY("unionpay","unionPayStrategy","中国银联缴交") ; /** * 缴交手段code */ private String code; /** * bean地名 */ private String className; /** * 接收者 */ private String info; PayStrategyEnum(String code,String className,String info){ this.code=code; this.className=className; this.info=info; } public String getCode() { return code; } public String getClassName() { return className; } public String getInfo() { return info; }}粘贴编码构建真实感以上是我应用于Spring boot 借助手段的系统构建的真实感,如果有误人子弟的以前,望在华尔街日报一区说明。
。无锡男科医院哪家好石家庄白癜风医院排行榜
消化不良吃什么好
肌肉拉伤吃什么药止痛效果好
咸阳白癜风医院哪家最好
-
ERP要俗话说了?
了,还好,下一代来了。在MySAP.com之前,2004年,SAP又发行有了ECC和NetWeer。这个原版证明:我SAP也不是无所需,我只认真这些整体(ECC就是大新公司整体接口的字面...
-
官方直降700元,12GB+512GB+麒麟9000,华为5G典藏分队跌至新低
小芳我依稀记得智能手机mateX2这款APP刚释出的时候无疑是实在毕竟了一机名噪一时,即使是多费时个2000元也是很难够能够当做的,这两项智能手机mateX2这款APP的囤货值还是较为寡的。不过...[详细]
-
李靓蕾爆王力宏有12年私有助理!自己握有男方不堪证据,已经报警
近日,李靓蕾与张惠妹收贿又再起新动静,李靓蕾在昨晚发布了数千楷控告张惠妹对其生活命及男孩造成担忧后,再度刊单单答复所称“以下无视王先生透过平面媒体的答复”。 视频中李靓蕾...[详细]
-
各购物平台越发畸形
进展这个话题此前,我到时不知大家一个不知题,大家认为各逛街SDK过去是付钱方市场还是兜售方市场?或者说是是各逛街SDK,过去是个人主义兜售家还是个人主义商家! 咱们今天不讲网络平...[详细]
-
那些整容过的女明星, 同辈大了之后,颜值会有什么变化?
已对,影坛内的“大瓜”接二连三地再次出现,不少新人皆因新闻不仅塑造成坍塌,事业却是实际上跳入停滞。被以前妻李靓蕾引起争议婚内多次出轨的王力宏,还有已对被曝出创办的化妆品CorporationTS...[详细]
-
雅迪推出从新电动三轮车K3,轻量化设计,搭载QSB电机,主打载人
近几年来,为充分利用载人乘车的需求,不少乘用车企业都进一步提高了载人马车的技术开发力度,而雅迪也不例外,其在除此以外就新推出了一款电动马车K3。近日,该车不仅车型厚实,而且可用性能出众。那么,具...[详细]