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