У меня есть класс С++, который описывает ориентацию объекта в 3D-пространстве - местоположение, поворот, масштаб и т.д. У меня есть другие классы, которые обязательно нуждаются в такой информации (или ее подмножестве) - модели, ландшафты, камеры и т.д. Теперь я мог бы сделать эти подклассы моего класса ориентации, но Гугль сказал мне, чтобы я предпочитал композицию над наследованием. Это философски имеет смысл - модель не является ориентировкой, она имеет один (и да, я знаю, что есть -это вещь - это просто эвристика). Тем не менее кажется бесполезным, почти комично неэлегантным переписывать те же методы обертки для всех этих потенциальных подклассов, которые просто идут на эту функциональность. Такие вещи, как model.getOrientation().set_x(1)
, кажутся глупыми.
Я могу понять, почему это не было бы "слишком плохо" для небольших объектов, но для этого примера (и тому подобное), , что точка композиции, если вам нужно пройти через обручи, чтобы притворяться, что вы используете наследование? Должен ли я использовать его сейчас? Я почти уверен, что думаю об этом ненадлежащим образом.