|
|
1
3
这可能是一个模板模式(不与C++模板混淆)的情况。公众
这篇文章对 template pattern with private virtual functions . 编辑: 我开始举出一个例子来说明我的意思,这看起来在体系结构中有一个更广泛的缺陷。抽象渲染器的使用有些琐碎,因为您强制每个几何对象密切注意特定的渲染器类型。 渲染器应该能够处理渲染器的公共方法,或者渲染器应该能够处理渲染器的公共方法。或者,如果真的需要如此亲密的联系,你可以给混凝土渲染器一个可渲染的工厂。我相信还有其他一些模式也很适合。 |
|
|
2
2
我不知道您的代码想要实现什么。您将可渲染对象派生为DirectXrenderables和OpenGLrenderables,然后在从渲染器派生的内容中提供OpenGL或DirectX功能。可以说,一件特定的事情使用另一件特定的事情。
识别一般的渲染函数,使它们
|
|
3
1
使用模板,您可以将IRendable分成两个类,分别对应两种渲染器类型。这可能不是最佳答案,但它确实避免了对动态强制转换的需要:
|
|
|
4
0
使用setter设置渲染器var并将其强制转换为该位置的正确类型。 |
|
|
5
0
看看是否 Bridge 设计模式有助于您:“将抽象与实现分离,以便两者可以独立变化。”在您的示例中,AbstractGeometricalObject将指向一个实现,一个具有平台特定子类的纯虚拟接口。棘手的部分是花时间 发现 那个接口。 |
|
|
6
0
让我们远离编译器,考虑一下理论。如果
所以,不同的
如果你声明
|
|
AstralHex · 矩阵乘法代码工作不正常 8 月前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 9 月前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 9 月前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 9 月前 |