Что такое хороший дизайн в этом простом случае:
Скажем, у меня есть автомобиль базового класса с методом FillTank(Fuel fuel)
где
топливо также является базовым классом, который имеет несколько классов листьев, дизельное топливо, этанол и т.д.
На моем классе листового автомобиля DieselCar.FillTank(Fuel fuel)
только определенный тип топлива
(сюрпризов нет:)). Теперь вот моя забота, согласно моему интерфейсу, каждый автомобиль может заправляться любым топливом, но это кажется неправильным для меня, в каждой реализации FillTank()
проверяйте входное топливо для правильного типа и если не выбросите ошибку или что-то еще.
Как я могу переделать такой случай на более точный, возможно ли это? Как создать базовый метод, который принимает базовый класс для ввода без получения этих "странных результатов"?