我正在为 2D 场景图构建代码,并且我有一个抽象类 Node,它将用于指示可以在场景图中使用的项目类型。但是,由此实现的类具有不同的类型,例如叶节点和转换节点。我将如何指出这些差异?我会使用属性、其他接口还是什么?
编辑:看来我提供的信息不足。以下是我可以提供的关于我当前层次结构的尽可能多的信息:
- 节点接口
- 需要一个名为 TransformationMatrix 的矩阵
- 需要一个名为 Children 的 INode 列表
- 需要一个名为 Parent 的节点
- 需要实现一个名为 Draw 的方法,该方法将一个 Matrix 作为参数并且不返回任何内容
- 节点类
- 实现 INode 接口
- 绘图调用(具有 1 个矩阵类型参数的虚拟 void)仅调用每个子 INode 的 Draw 方法。
- 从 Node 派生的各种类
- 这些是实际节点,可以是转换节点、叶节点等。