ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java if else如何修改为设计模式进行处理呢?

2022-04-16 00:31:20  阅读:361  来源: 互联网

标签:System java pay PaySort else 微信 println 设计模式


 下文笔者讲述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

标签:System,java,pay,PaySort,else,微信,println,设计模式
来源: https://www.cnblogs.com/java265/p/16151663.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有