首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写3D图形软件时的类层次结构

编写3D图形软件时的类层次结构
EN

Stack Overflow用户
提问于 2011-12-14 04:26:21
回答 1查看 123关注 0票数 0

这是一个方法论问题。

在编写利用面向对象的库来抽象OpenGL等内容的软件时,您是否(或是否愿意)选择扩展OpenGL帮助程序对象并在其中添加您自己的业务逻辑,或者创建基本的业务对象,然后将OpenGL帮助程序作为它们的属性。

例如

假设我有一个OpenGL库,它提供了一个类

OpenGLBillboard

它绘制了一个面对相机的2D精灵

如果我有某种将使用该类呈现的业务对象,那么简单地扩展OpenGLBillboard并在其基础上构建是明智的做法,还是应该只有一个OpenGLBillboard对象,它是软件中本质上是基类的属性?

在这种情况下,继承看起来可能是危险的,因为如果基类由于需求而发生变化,重构可能会很痛苦……然而,如果我只是走属性路线,我有更多的前期样板要写。

你的想法是什么?

谢谢

另外,请原谅我说“业务对象”。我只是不想在关于3D的话题中说太多“模型”,让人们对我的意思感到困惑。

EN

回答 1

Stack Overflow用户

发布于 2011-12-14 04:33:18

就我个人而言,我可能会让我的业务对象(私下)包含一个"Billboard“实例,而不是将它直接绑定到OpenGL。

业务对象将被要求呈现,并通过Billboard实例重定向它的方法。这将允许您换出不同的实现(如果您决定使用不同于公告牌的实现)或不同的后端(即: Direct3D呈现管道),而根本不需要更改业务对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8495708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档