枚举优化OData服务连接数过多混乱问题

        最近在做java整合SAP中的OData服务做微信端的一个报表展示,刚开始预定的连接数是比较少的大概也就20多个,我就用了一个Enum去设计OData枚举,但是随着合同的追加,OData连接数越来越多大概增加了70多个,之前那个OData就越来越长导致我去找某个OData服务的时候十分的恶心,于是我就将原来的OData去进行拆分,为了尽可能得减少代码的修改我借用了java中的多态,大体是这么回事:

       #OData服务顶层接口

        /**

        *   ip 连接OData服务ip, date向OData服务中发送的信息(大部分是时间)

        */

        public interface ODataUrlEnumInterface{

              //  获取OData服务链接

                getUrl(String ip , String date);

        }

       

public enum XXXXODataUrlEnum implements ODataUrlEnumInterface {
    
 A("/ZHK_ODATA_xxx_SRV/RAXHCWxx_RAXHCWxx_CW_O_001(A0CALDAY='","',A0CALDAYTo='",2);

    //url前缀

    private  String PRE_URL;

   //url中间格式

    private String MID_URL;

    //参数个数
    private int PARAM_COUNT = 1;

   
    
    private XinHengODataUrlEnum(String PRE_URL) {
        this.PRE_URL = PRE_URL;
    }
    
    
    private XinHengODataUrlEnum(String PRE_URL,String MID_URL,int PARAM_COUNT) {
        this.PRE_URL = PRE_URL;
        this.MID_URL = MID_URL;
        this.PARAM_COUNT = PARAM_COUNT;
    }

    @Override
    public String getUrl(String ip,String date) {

        StringBuffer buffer = new StringBuffer();

        buffer.append("http://");

        buffer.append(ip);

        buffer.append("/sap/opu/odata/sap/");

        buffer.append(PRE_URL);

        if(PARAM_COUNT == 1) {

           buffer.append(date);

        }else if(PARAM_COUNT == 2) {
            String[] dataArr = date.split(":");
            if (dataArr.length != 2) {
              return "日期数据格式不对";

            }

             buffer.append(dataArr[0]);

             buffer.append(MID_URL);

             buffer.append(dataArr[1]);

        }

       buffer.append("')/Results?$format=json");

        return buffer.toString();
    }
}

        接着就是将最外层获取枚举的参数类型改成接口类型就行了;

        public <T extends ODataUrlEnumInterface> getJsonDataFromDataByCondition(T t ,String queryStr)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值