我正在编写游戏引擎,并且正在创建一些资源基类,例如顶点、纹理、字体等。
现在我正在创建一些我希望向使用这些基类的其他程序员公开的基本类,例如 Image(使用纹理)、Text(使用字体)、Models(使用顶点)等
游戏引擎也暴露在外,因此他们可以调用它的函数等来编写游戏。
但我根本不希望他们访问基类,我也不希望它与他们的类发生冲突。例如,他们可能想为游戏中的某些东西创建一个名为“Material”的类,但我的资源已经有一个“Material”类,我怎样才能避免冲突,甚至更好地隐藏这些基类(这样它们就不会弄乱它并打破一些东西)?
编辑:例如,我有公开的类Image。它包含Quad和Texture基类的私有实例,我的资源管理器确保始终只加载其中一个(因此我在内存中没有重复的纹理/四边形)。
纹理本身具有宽度/高度,并管理加载到卡中的数据。Quad 也一样。
Image确保在请求调整图像大小时,它会更改需要更改的所有内容并将数据重新上传到卡中。
Texture和Quad是公开的,因为它们几乎无处不在,有模块和一些对其应用效果的类。
他们(其他程序员)可以使用Image作为实例、继承或成员,因为它管理自己,我只想公开这个Image类,所以他们不知道有Quad和Texture类,而且它也没有不要干扰他们的班级命名。