【发布时间】:2011-01-18 08:15:58
【问题描述】:
在这个简单的案例中什么是好的设计:
假设我有一个带有 FillTank(Fuel fuel) 方法的基类 Car
燃料也是一个基类,它有几个叶类,柴油,乙醇等。
在我的叶子车班上DieselCar.FillTank(Fuel fuel)只有一种燃料
是允许的(这并不奇怪:))。现在我担心的是,根据我的界面,每辆车都可以加任何燃料,但这对我来说似乎是错误的,在每个FillTank() 实现中检查输入燃料的类型是否正确,如果没有抛出错误或其他什么。
如何将这种情况重新设计为更准确的情况,甚至可能吗? 如何设计一个基类作为输入而不得到这些“奇怪结果”的基方法?
【问题讨论】:
标签: oop car-analogy