在我的项目中,我有多个子系统组织为类.
我需要这些类进行通信(因此能够通过指针访问另一个),我希望尽可能以最佳方式实现它.
我基本上看到三种可能的解决方案:
>如果子系统X需要访问子系统Y,则将一个成员变量添加到指向Y实例的类X.当创建X时,将指针传递给Y并设置成员变量m_pSystemY.
>为每个子系统声明一个全局变量CSystemX * g_SystemX.它将在程序启动时填充指向新创建的子系统实例的指针.稍后,您可以从任何地方轻松访问它.
>创建复杂的子系统管理器类.所有子系统都存储在一个数组中.您需要调用函数才能访问特定的子系统.
我的问题:
>我应该将哪些解决方案用于我的游戏引擎项目?
>您是否有任何这些方法的个人经验?
最佳答案 通过指向其他类的指针暴露整个类将在整个系统中产生紧密耦合,从而打破了“demeter法则”.您可以通过已知的设计模式使其更好,例如:中介模式.只是一个想法…