作者回复: 👍🏻
作者回复: 有读源码习惯👍🏻
作者回复: 简单的将SupportPromotions促销类型存储起来就好了
作者回复: 我们知道,InputStream是直接读写文件的,除了InputStream,在其上层还有BufferedInputStream、DataInputStream等其他修饰类,增加了缓存读取、类型读取等功能,相当于InputStream之上加了很多修饰功能,在所以它是一个装饰器模式。
作者回复: 对的,主要用来优化业务的复杂度。
作者回复: 好的,后续补上
作者回复: 由于我们这里考虑到灵活的组合模式,所以需要调用父类的countPayMoney()方法。
作者回复: 这里的场景是多个叠加优惠
作者回复: 也可以基于该模式实现,我们只需要将叠加逻辑改成选择最优逻辑即可。
作者回复: 对的,没有使用,可以忽略
作者回复: super.countPayMoney(orderDetail)主要是计算了orderDetail中的paymoney,这里写的可读性不是很好,可以这样理解:
BigDecimal payTotalMoney = new BigDecimal(0);
super.countPayMoney(orderDetail);//计算paymoney;
payTotalMoney = countCouponPayMoney(orderDetail);//计算优惠后的价格;
作者回复: 这是一个抽象基类,没有特别的,方便后面扩展
作者回复: 代码易扩展,逻辑清晰