Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当然,这取决于情况。但是当较低级别的对象或系统与较高级别的系统通信时,是否应该首选回调或事件而不是保持指向较高级别对象的指针?
例如,如果我们正在开发一款游戏,我们有一个world class具有成员变量的vector<monster> monsters。当monster class要与 通信时world class,我应该更喜欢使用回调函数还是应该在怪物类中拥有指向世界类的指针?
world class
vector<monster> monsters
monster class
由于您提到的原因并避免相互/循环依赖,通常最好使用回调与更高级别的类进行通信。
在您的情况下,您仍然必须定义什么是较低级别的模块。世界真的需要知道什么是怪物吗?怪物不只是生物或对手吗?怪物不需要某种环境来行动吗?只有你能回答这个问题才能得出一个可行的解决方案。