如何用最小代价,迅速提高你项目中“shit”代码的可读性(妈妈再也不用担心我删库跑路啦)
发布日期:2021-04-30 21:11:32 浏览次数:114 分类:精选文章

本文共 4662 字,大约阅读时间需要 15 分钟。

??????????????????????

??

?????????????????????????????????????????????????????????????-else????????????????????????????????????????????????????????????????????????????????

??

????????????

?????????????????????Java??????????????????????warning??????????????????????????????????????????????????????????????????

?????????????????????add????????????????????

public void add(Object element) {
if (!readOnly) {
int newSize = size + 1;
if (newSize > elements.length) {
Object[] newElements = new Object[elements.length + 10];
for (int i = 0; i < size; i++) {
newElements[i] = elements[i];
}
elements = newElements;
}
elements[size++] = element;
}
}

??????

???????????????????????

public void add(Object element) {
if (readOnly) {
return;
}
if (atCapacity()) {
grow();
}
addElement(element);
}
private boolean atCapacity() {
int newSize = size + 1;
return newSize > elements.length;
}
private void grow() {
Object[] newElements = new Object[elements.length + 10];
for (int i = 0; i < size; i++) {
newElements[i] = elements[i];
}
elements = newElements;
}
private void addElement(Object element) {
elements[size++] = element;
}

??????????????????????????????????????????????????????????????????????????????????

??????if-else???????

?????????????????if-else???????????????????????????????????????????????????????????

public double getIntegral() {
if (payChannel instanceof BankChannel) {
return paymentValue * 1.5;
} else if (payChannel instanceof WxChannel) {
return paymentValue * 2 - couponValue;
} else if (payChannel instanceof AliPayChannel) {
return paymentValue * 2 + loanValue * 1;
}
return 0;
}

??if-else?????????????????????????????????????????????????????????

???????

????????????????????????????????

public abstract class IntegralStrategy {
abstract double getIntegral(PayResult payResult);
}
public class AliPayIntegralStrategy extends IntegralStrategy {
@Override
double getIntegral(PayResult payResult) {
return payResult.getPaymentValue() * 2 + payResult.getLoanValue() * 1;
}
}
public class UnionPayIntegralStrategy extends IntegralStrategy {
@Override
double getIntegral(PayResult payResult) {
return payResult.getPaymentValue() * 1.5;
}
}
public class WxPayIntegralStrategy extends IntegralStrategy {
@Override
double getIntegral(PayResult payResult) {
return payResult.getPaymentValue() * 2 - payResult.getCouponValue();
}
}

??????????????if-else??????????????????????????????????????????

??????????

??????????????????????????????????????????????

???????

  • ???????????????????????
  • ?????????????????????
  • ????????????????????????
  • ??????????????????????
  • ????????

    ????????????????????????????????????????????????????PayResult???????????????????????

    public static PayResult createUnionPayResult(Date payDate, Double totalValue, Double paymentValue) {
    return new PayResult(
    new BankChannel(),
    payDate,
    totalValue,
    paymentValue,
    0.0d,
    0.0d,
    new UnionPayIntegralStrategy()
    );
    }
    public static PayResult createWxPayResult(Date payDate, Double totalValue, Double paymentValue, Double couponValue) {
    return new PayResult(
    new WxChannel(),
    payDate,
    totalValue,
    paymentValue,
    couponValue,
    0.0d,
    new WxPayIntegralStrategy()
    );
    }
    public static PayResult createAliPayResult(PayChannel payChannel, Date payDate, Double totalValue, Double paymentValue, Double couponValue, Double loanValue) {
    return new PayResult(
    payChannel,
    payDate,
    totalValue,
    paymentValue,
    couponValue,
    loanValue,
    new AliPayIntegralStrategy()
    );
    }
    private PayResult(
    PayChannel payChannel,
    Date payDate,
    Double totalValue,
    Double paymentValue,
    Double couponValue,
    Double loanValue,
    IntegralStrategy integralStrategy
    ) {
    this.payChannel = payChannel;
    this.payDate = payDate;
    this.totalValue = totalValue;
    this.paymentValue = paymentValue;
    this.couponValue = couponValue;
    this.loanValue = loanValue;
    this.integralStrategy = integralStrategy;
    }

    ?????????????????????????????????????

    ????

    ??????????????????????????????????????????????????????????????????????

  • ????????????????????????
  • ?????????????????????
  • ???????????? setter ??????????????????????
  • ?????????????????????????????????????????????????????????????????????????B??????????Android??????????????????????????????

    上一篇:软件测试开发问题探究
    下一篇:JavaSE 第四章 异常处理、自定义异常类

    发表评论

    最新留言

    很好
    [***.229.124.182]2026年06月04日 12时25分55秒