利用 策略模式+反射+枚举+单例 优化if-else 或者 switch case

本文介绍了如何通过策略模式、反射、枚举和单例模式来优化大量if-else或switch case的代码结构。在项目中,通过创建枚举类存储操作分支,使用抽象策略类和其子类实现具体策略,结合单例模式将策略加载到Map中,简化了逻辑。测试结果显示,实现了预期的功能。
摘要由CSDN通过智能技术生成

在最近的项目中,涉及到根据传入的参数来新建不同的类,然后调用不同类的相同方法,因为太多if-else 或者 switch case ,但是这样的写的代码看起来很累赘(性能的提升我没去验证,感兴趣的朋友可以去试试),所以想到了如题的方法。其实这个也可以用单纯的策略模式去完成。废话不多说,直接上代码

1.首先是枚举类 TypeEnum:

枚举类的作用:用于存放需要进行操作的分支

package com.railway.bigdata.electric.streaming.comm.pg;

/**
 * @author kain.wang@embracesource.com
 * @date 2018/11/27 14:49
 */
public enum TypeEnum{
	//枚举类的values  列表
    A_PROCESS("A","com.railway.bigdata.electric.streaming.comm.pg.signalling.AProcess"),
	B_PROCESS("B","com.railway.bigdata.electric.streaming.comm.pg.signalling.BProcess"),
    C_PROCESS("C","com.railway.bigdata.electric.streaming.comm.pg.signalling.CProcess"),

    private String type;
    private String clazz;

    private RefelDbTypeEnum(String type,String clazz){
        this.type=type;
        t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值