class Player { private: int health; int score; public: Player(int h, int s) : health(h), score(s) {}
时间: 2024-10-10 11:03:03 浏览: 24
`Player` 类的设计可以遵循单一职责原则[^1],即每个成员变量(如 `health` 和 `score`)代表不同的职责。然而,这个类本身可能不完全满足 SRP,因为它包含了健康和分数两个属性,这通常属于角色的状态管理。
要按照 SRP 的理念,我们可以考虑将 `health` 和 `score` 分别放在不同的类或数据结构中。比如,创建一个 `CharacterState` 类来封装这些信息:
```cpp
class CharacterState {
public:
explicit CharacterState(int initialHealth, int initialScore)
: health(initialHealth), score(initialScore) {}
int getHealth() const { return health; }
int getScore() const { return score; }
private:
int health;
int score;
};
class Player {
public:
Player(CharacterState initialState) : currentState(initialState) {}
// 其他与角色相关的操作...
void takeDamage(int damage) {
currentState.health -= damage;
}
void incrementScore(int points) {
currentState.score += points;
}
private:
CharacterState currentState;
};
```
在这个设计中,`Player` 类专注于控制角色的行为,而 `CharacterState` 负责维护角色的状态。这样,每个类都有明确的职责。
阅读全文