我正在重构一个租车系统的代码。租车类别记录每个租车持续时间、里程和汽车类型。它有一种基于这些属性计算最终成本的方法。
有3种(可能更多)不同日价格的汽车类型。在ComputeCost方法中检查每种汽车类型显然不是最好的解决方案。然而,多态性似乎也不是合适的解决方案,因为不同的汽车类型不实现额外的功能;它们只是具有不同的费率。将ComputeCost方法移动到这些子类中的每一个似乎也不合适,因为该方法更多地依赖于租赁属性,如里程和持续时间,而不是汽车类型。
发布于 2020-10-09 19:02:50
听起来您确实想要一个Rate类。
该Rate类有一个computeCost(Rental)方法,该方法计算具有给定费率的给定租赁的成本。
现在,如果不同Rate之间的所有差异都是数值,那么Rate类本身就可以是一个具有几个字段的非常基本的类。
https://stackoverflow.com/questions/64278704
复制相似问题