有时我们会遇到一个类不需要使用自己的属性的问题。见方法A:
struct Ball {
double mass = 1;
double x = 0;
double y = 0;
};
struct World {
std::vector<Ball*> balls;
void run_physics() {
// here we run the physics
// we can access every ball and their x, y properties
}
};
为了避免这种情况,我们可以使用方法B:
struct World;
struct Ball {
World* world = NULL;
double mass = 1;
double x = 0;
double y = 0;
void run_physics() {
if (this->world != NULL) {
// here we run the physics again
// we can access every other ball properties through this->world->balls vector.
}
}
};
struct World {
std::vector<Ball*> balls;
};
但是方法B是一种紧耦合结构,这意味着两者都Ball
互相World
了解,这是不好的。
那么,哪种方法更好呢?
- A : 松耦合,但有些类不会使用自己的属性,或者
- B : 类会使用它们的属性,但是紧耦合结构?
什么时候使用每一个?