0
您应该使用复杂数据类型的访问器吗?这里是一个例子:您应该使用复杂数据类型的访问器吗?
假设我有一个Player
类,并在里面有一个Sprite
对象。假设Sprite
对象有一个setPosition()
访问器方法。现在让我们假设我想通过播放器调用该方法,因此我创建了一个对象的访问器,用于访问Player
。
class Player
{
public:
const Sprite& getSprite() const;
private:
Sprite sprite;
}
现在让我们说我创建了一个“球员”的对象,我怎么呼吁sprite
?我不能只说playerObject.getSprite().setPosition();
,因为Sprite
引用getSprite()
方法返回的是const。
考虑到sprite
对象对所有成员都有保护,我应该在这种情况下公开sprite
对象吗?或者这是一个不好的做法,我确实需要使用访问器?
你应该考虑[SOLID](http://en.wikipedia.org/wiki/SOLID_(object-oriented_design))原理。从代码的模块化和可维护性的角度来看,您的问题的答案可能不是您明确要求的。首先,您可能想要将游戏逻辑与演示(精灵等)分开, –