java if else如何修改为设计模式进行处理呢?
2022/4/16 1:12:57
本文主要是介绍java if else如何修改为设计模式进行处理呢?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
下文笔者讲述if else过长-如何修改为更优雅的代码实现呢?下文将一一道来,如下所示:
实现思路: 使用map ,接口 ,工厂类即可简化if else代码
例: 具有相同业务的if else改写 原代码
if (sort =="银行卡") { System.out.println("我是银行卡支付!"); }else if (sort =="微信") { System.out.println("我是微信支付!"); }else { System.out.println("无支付方式"); }
修改后的代码
package com.java265.other; import java.util.HashMap; import java.util.Map; public class Test16 { /** * java265.com 示例程序 数组转集合 * * @throws Exception */ public static void main(String[] args) throws Exception { PaySort paySort = PayFactory.getPaySortService("微信"); if (null != paySort) { paySort.pay(); } PaySort paySort1 = PayFactory.getPaySortService("信"); if (null != paySort1) { paySort1.pay(); } PaySort paySort2 = PayFactory.getPaySortService("银行卡"); if (null != paySort2) { paySort2.pay(); } } } abstract class PaySort { protected void pay() { throw new UnsupportedOperationException("无可用的支付方式"); } } class WeixinPay extends PaySort { @Override public void pay(){ System.out.println("我是微信支付!"); } } class BankCardPay extends PaySort { @Override public void pay() { System.out.println("我是银行卡支付!"); } } class PayFactory{ static Map<String, PaySort> map = new HashMap<>(); static { map.put("微信", new WeixinPay()); map.put("银行卡", new BankCardPay()); } public static PaySort getPaySortService(String payName) { return map.get(payName); } } ------运行以上代码,将输出以下信息----- 我是微信支付! 我是银行卡支付!
转自:http://www.java265.com/JavaJingYan/202204/16500395952890.html
这篇关于java if else如何修改为设计模式进行处理呢?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略