В проекте наша команда использует списки объектов для выполнения массовых операций над наборами данных, которые все должны обрабатываться аналогичным образом. В частности, разные объекты идеально действовали бы одинаково, что было бы очень легко достигнуто при полиморфизме. Проблема, с которой я сталкиваюсь, заключается в том, что наследование подразумевает, что отношение является отношением, а не имеет отношение. Например, у нескольких объектов есть счетчик повреждений, но чтобы сделать его простым в использовании в списке объектов, можно использовать полиморфизм, за исключением того, что подразумевается, что - это отношение, которое было бы неверным. (Человек не является счетчиком.)Наследование и полиморфизм - простота использования и чистота
Единственное решение, о котором я могу думать, состоит в том, чтобы иметь член класса, возвращающего правильный тип объекта, когда он неявно литой, вместо того, чтобы полагаться на наследование. Было бы лучше отказаться от является/имеет идеален в обмен на простоту программирования?
Редактировать: Чтобы быть более конкретным, я использую C++, поэтому использование полиморфизма позволит различным объектам «действовать одинаково» в том смысле, что производные классы могут находиться в одном списке и управляться с помощью виртуальную функцию базового класса. Использование интерфейса (или имитация их через наследование) похоже на решение, которое я бы хотел использовать.