【发布时间】:2009-04-01 13:24:06
【问题描述】:
我是一名经验丰富的 C 程序员,涉足 OO 设计(特别是 C++)。我有一段特别讨厌的代码,想用 C++ 来清理。
代码实现了一个用于 3D 图形应用程序的显示树。它是条目的链接列表,其中有一个类型字段,指定条目是窗口、几何特征还是灯光等。特别是几何特征可以是子特征集合的单个几何,由存在一个单独的结构。
作为一个链表,它是一个平面结构,但顺序意味着层次结构。此外,每个条目都有一个属性结构,可以在列表中向下传播。
一个单独的函数允许遍历此列表,并在遍历列表时执行提供的函数指针。以这种方式使用的每个函数都必须适当注意维护属性结构,因为它在列表中传播,这是呈现错误的常见原因(通常没有意识到它们应该被重绘,因为它们是一组条目的一部分,例如)
虽然 OO 设计的某些方面让我眼前一亮,但我很想听听:
我将如何最好地实现能够将函数指针向下传递到列表(或向量 - STL 向量适用于这样的列表吗?)
将窗口和几何特征实现为相关(甚至相同)类是否正确
如何最好地设计一个可以拥有自己的集合的类
关于对象之间属性转移的任何建议(例如颜色、比例)。期望的行为是修改特征将改变该特征及其包含的任何子特征的属性,而修改子特征只会修改该特征。
我知道这是一个冗长而广泛的问题,因此感谢您对上述任何问题的看法。 谢谢!
【问题讨论】: