本文共 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;} ?????????????????????????????????????
????
??????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????B??????????Android??????????????????????????????
发表评论
最新留言
关于作者