Это своего рода методологический вопрос.
При написании программного обеспечения, использующего объектно-ориентированные библиотеки для абстрагирования OpenGL и т. П., Если вы (или вы бы) решили расширить вспомогательные объекты OpenGL идобавьте к ним свою собственную бизнес-логику или создайте свои основные бизнес-объекты, а затем присвойте их помощникам OpenGL.
Например,
Допустим, у меня есть библиотека OpenGL, которая предоставляеткласс
OpenGLBillboard
, который рисует 2D-спрайт, обращенный к камере
, если у меня есть какой-то бизнес-объект, который будет отображаться с использованием этого класса, разумно ли этопросто расширить OpenGLBillboard и построить поверх него, или мне просто нужно иметь объект OpenGLBillboard, который является свойством того, что по сути является базовым классом в моем программном обеспечении?
Кажется, что наследование в этом случае может быть опаснымпотому что если базовый класс когда-либо должен измениться из-за требований, рефакторинг может быть болезненным ...тогда как, если я просто пройду по маршруту собственности, у меня будет еще несколько предварительных шаблонов для письма.
Ваши мысли?
Спасибо
PS простите меня за высказывание "бизнес-объект",Я просто не хотел много говорить «модель» в теме о 3D, и люди не могли понять, что я имею в виду.