在这个简单的案例中什么是好的设计:
假设我有一个基类 Car 的方法FillTank(Fuel fuel)
,其中燃料也是一个基类,它有几个叶类、柴油、乙醇等。
在我的叶子车类DieselCar.FillTank(Fuel fuel)
上,只允许使用某种类型的燃料(这并不奇怪:))。现在这是我关心的问题,根据我的界面,每辆车都可以加满任何燃料,但这对我来说似乎是错误的,在每个FillTank()
实现中检查输入燃料的类型是否正确,如果没有抛出错误或其他东西。
我怎样才能将这种情况重新设计为更准确的情况,甚至可能吗?如何设计一个基类作为输入而不得到这些“奇怪结果”的基本方法?