这是一种方法论问题。当您编写使用面向对象库来抽象OpenGL等的软件时,您(或您)是否应该选择扩展OpenGL辅助对象并将自己的业务逻辑添加到它们上面,或者创建您的基本业务对象,然后将OpenGL助手作为它们的属性。编写3D图形软件时的类层次结构
例如
比方说,我有一个OpenGL库,它提供了一个类
OpenGLBillboard
其中提请面对摄像机
,如果我有某种业务的2D精灵将使用该类呈现的对象,单纯地扩展OpenGLBillboard并在其上构建它是明智的,还是我应该拥有一个OpenGLBillboard对象,该对象是一个基本上是基类的属性我的软件?
看起来在这种情况下继承可能是危险的,因为如果基类因需求而必须改变,重构可能会很痛苦......但是如果我只是走财产路线,我会多一点前期样板书写。
您的想法?
谢谢
P.S.原谅我说“商业对象”。我只是不想在一个关于3D的话题中说“模型”,并且让人们对我的意思感到困惑。