低耦合和紧密的内聚力

时间:2011-02-22 11:52:21

标签: c++ coupling

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

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

1 个答案:

答案 0 :(得分:6)

出于提及的原因,通常最好使用回调来与更高级别的类进行通信,并避免相互/循环依赖。

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