(5/8)枚舉的錯誤用法 之 方法體內部

▄︻┻┳═一Agenda:html

▄︻┻┳═一(1/8)[代碼整潔之道]你真的會用枚舉嗎?非也!編程

▄︻┻┳═一(2/8)枚舉的錯誤用法 之 方法參數post

▄︻┻┳═一(3/8)枚舉的錯誤用法 之 方法參數(二)url

▄︻┻┳═一(4/8)枚舉的錯誤用法 之 方法返回值spa

▄︻┻┳═一(5/8)枚舉的錯誤用法 之 方法體內部code

▄︻┻┳═一(6/8)枚舉的錯誤用法 之 分支判斷htm

▄︻┻┳═一(7/8)藉助枚舉說一下數據類型定義規範blog

▄︻┻┳═一(8/8)RPC接口能用枚舉就請考慮枚舉接口


 

 

繼續講枚舉的使用。前文說的是方法參數和pojo屬性定義成枚舉類型的好處。本文講在方法裏使用枚舉的妙處。字符串

【先上代碼】

private boolean riskCheck(RefundReqBO refundReq, RefundRspBO refundRsp, RpmOrdDO rpmOrd, RpmRtulDO rpmRtul, YGBizMessageContext ctx) throws YGException {
    Logger logger = YGLogger.getLogger();
    ... ...

    String busTyp = RRCBusTypEnum.USER_CONSUME_REFUND_REFUND.getValue();
    if(AcPayFlgEnum.NO_ACCOUNT_PAYMENT.getValue().equals(rpmOrd.getAcPayFlg())){
        busTyp = RRCBusTypEnum.GWAY_CONSUME_REFUND.getValue();
    }

    RealTimeRiskCheckReqBO riskReq = new RealTimeRiskCheckReqBO();
    riskReq.setTxCd(refundReq.getGda().getTxCd());
    ... ...
    /** 此處省略15行代碼 **/
    ... ...
    riskReq.setBusTyp(busTyp);
    ... ...
}

 

本文要說的就是上面方法裏busTyp變量的類型。

注意上面方法裏省略的15行代碼 ,正是這麼多行邏輯代碼的存在,當咱們滾屏時,會給咱們理解下文裏出現的busTyp帶來麻煩:busTyp具體指?又會有哪些值? 用個人14寸的筆記本電腦截屏以下,能夠直觀地看到,一屏顯示不全這個變量的定義和使用。

 

【重構方式】

在上面的方法體裏,把busTyp定義爲了String,因爲代碼行多,在下文看到這個變量後,由於是字符串,因此不免不知道它是會存哪些值。這時呢,咱們只好再翻上面的代碼查看它的定義和賦了哪些值。

而若是把busTyp定義爲RRCBusTypEnum,那麼下文在用到的時候,就能直觀的知道它的含義以及它的具體取值範圍,從而提升了可讀性。 

BTW,無論存不存在那15行代碼,把busTyp定義爲RRCBusTypEnum,用的時候再取它對應的屬性,這無疑是個好的編程習慣,由於代碼整潔度高!

重構後的代碼爲:

private boolean riskCheck(RefundReqBO refundReq, RefundRspBO refundRsp, RpmOrdDO rpmOrd, RpmRtulDO rpmRtul, YGBizMessageContext ctx) throws YGException {
    Logger logger = YGLogger.getLogger();
    ... ...

    RRCBusTypEnum busTyp = RRCBusTypEnum.USER_CONSUME_REFUND_REFUND;
    if(AcPayFlgEnum.NO_ACCOUNT_PAYMENT.getValue().equals(rpmOrd.getAcPayFlg())){
        busTyp = RRCBusTypEnum.GWAY_CONSUME_REFUND;
    }

    RealTimeRiskCheckReqBO riskReq = new RealTimeRiskCheckReqBO();
    riskReq.setTxCd(refundReq.getGda().getTxCd());
    ... ...
    /** 此處省略15行代碼 **/
    ... ...
    riskReq.setBusTyp(busTyp.getValue());
    ... ...
}
相關文章
相關標籤/搜索