假设我有三个类 , ,Solid
定义如下:Face
Edge
class Solid{
public:
// perform an action on a single edge.
void addFillet(int edgeNum);
// perform an action on a single face
void addBore(int faceNum);
// perform an action on all faces and edges
void move(Pos newPosition);
private:
std::vector<Edge*> edges;
std::vector<Face*> faces;
};
class Face{
public:
// will modify a subset of edges
virtual void changeHeight(int newHeight) = 0;
private:
int myNum;
std::vector<Edge> edges;
}
class Edge{
public:
virtual void changeLength(int newLength) = 0;
private:
int myNum;
int length;
}
在此示例中,Solid
管理Edge
s 的“超集”。每个管理Face
的Solid
人都会有一个“子集” Solid.edges
。此外,任何两个Solid.faces
可能有一个共同的Edge
.
我的问题:是否有任何设计模式或一般的面向对象原则来处理这种情况?如何管理 和 之间的Solid.edges
关系Face.edges
?进一步来说