我正在开发一个由许多独立子系统组成的系统。其中两个子系统是 Window 和 GraphicsAdapter 子系统。
GraphicsAdapter 需要一个低级窗口句柄(HWND 或 X11 窗口句柄,取决于操作系统),而 Window 子系统是一种抽象这些操作系统特定 API 的方法。
如果 Window 子系统允许访问低级 API 句柄,则封装被破坏的可能性很大。
如果它允许窗口全屏并返回,但必须触发事件警告系统有关这些更改,并且低级句柄被用于在其不知情的情况下切换到全屏怎么办?
如何确保句柄安全地从 Window 子系统传送到 GraphicsAdapter 而不会被滥用,并且仍然足够灵活以允许稍后添加其他子系统(如 GraphicsAdapter),同时保持类型安全?
有没有办法以 Direct3D 和 OpenGL 可以从句柄访问刚好足以正常工作的方式封装句柄?
- 编辑
除了安全地将把手从一个子系统转移到另一个子系统之外,例如,知道子系统可以由不同的编码人员团队编写,是否有任何方法可以提醒他们使用把手的方式?
注释是显而易见的选择,但编译器强制执行的东西才是我真正想要的......