【发布时间】:2015-03-28 03:50:46
【问题描述】:
例如,我有两个课程,游戏和逻辑。游戏有一个指向名为 m_Logic 的对象的唯一指针。
class Game {
public:
Game(){}
private:
std::unique_ptr<Logic> m_Logic;
}`
class Logic {
public:
Logic()
bool Run(Game &pGame) {
pGame.GetObjectPtr().DoStuff() return true;
}
在逻辑类中我使用了一个引用游戏对象的方法,所以最终我可以调用:
this->m_Logic->Run(*this);
从游戏类内部,当我需要组件在知道游戏包含什么的同时完成其工作时,不必不断地将来自游戏对象本身的单个对象引用传递到它的组件中。
由于在这种情况下它们都相互依赖,有哪些替代方案可以使它们尽可能独立,但在遵循良好设计实践的同时仍然了解彼此可以合作?我的目标是做到这一点,而不必声明游戏拥有的相同单个对象的引用,并尽可能保持参数干净。
提前谢谢大家。
【问题讨论】:
标签: c++ class object dependencies composition