当然这取决于具体情况。但是当较低级别的对象或系统与更高级别的系统进行通信时,是否应该首选回调或事件来保持指向更高级别对象的指针?
例如,如果我们正在开发游戏,我们会有一个world class
,其成员变量为vector<monster> monsters
。当monster class
要与world class
进行通信时,我是否应该更喜欢使用回调函数,还是应该在怪物类中指向世界类?
答案 0 :(得分:6)
出于提及的原因,通常最好使用回调来与更高级别的类进行通信,并避免相互/循环依赖。
在您的情况下,您仍然需要定义什么是较低级别的模块。世界真的需要知道怪物是什么吗?不是怪物只是生物或对手吗?怪物不需要某种环境来行动吗?只有你能回答这个问题才能找到可行的解决方案。