在C ++渲染中实现组件模式时的耦合

时间:2018-08-09 07:23:18

标签: c++ oop design-patterns components game-engine

现在,我有一个包含一些组件的类来执行操作,而这些组件也需要此父类的引用来更新状态。它们相互耦合使设计变得困难。这是示例代码片段:

#include<iostream>
#include <windows.h>
#include <math.h>
using namespace std;
class man {
public:
    int health{ 10 }, x, y;
    void update();
private:
    class moveCom *_move;
    class judgeCom *_judge;
};
class moveCom {
public:
    void update(man&m) {
        ++m.x;
        ++m.y;
    }
};
class judgeCom {
public:
    void update(man&m) {
        if(rand()%10 <= 5)
            ++m.health;
        else --m.health;
    }
};
void man::update() {
    _move->update(*this);
    _judge->update(*this);
    cout << health << " " << x << " " << y << endl;
}
int main() {
    man m;
    while (1) {
        Sleep(200);
        m.update();
    }
    return 0;
} 

此代码只能在同一个cpp文件中工作,这意味着如果将它们拆分为不同的hpp / cpp将导致编译错误。是否有任何更好的实践方法?

编辑:对不起,我再试一次,也可以单独尝试。

0 个答案:

没有答案