低耦合和紧密的内聚力

hid*_*yat 3 c++ coupling

当然这取决于具体情况.但是当较低级别的对象或系统与更高级别的系统进行通信时,是否应优先使用回调或事件来保持指向更高级别对象的指针?

例如,如果我们正在开发游戏,我们就有world class一个成员变量vector<monster> monsters.如果monster class要与之通信world class,我应该更喜欢使用回调函数,还是应该指向怪物类中的世界类?

ste*_*anv 6

由于您提到的原因并且避免相互/循环依赖性,通常最好使用回调来与更高级别的类进行通信.

在您的情况下,您仍然需要定义什么是较低级别的模块.世界真的需要知道怪物是什么吗?不是怪物只是生物或对手吗?怪物不需要某种环境来行动吗?只有你能回答这个问题才能找到可行的解决方案.