对于这些要求,什么是优雅的 OOP 设计?
“为建筑物、楼层和空间设计类结构。空间可以是公寓、商店或办公室。包括您认为有趣的任何属性、领域和方法。”
我已经尝试过了,但我认为这不是一个好的解决方案:
space {
floor {
}
building {
floor{
}
}
}
对于这些要求,什么是优雅的 OOP 设计?
“为建筑物、楼层和空间设计类结构。空间可以是公寓、商店或办公室。包括您认为有趣的任何属性、领域和方法。”
我已经尝试过了,但我认为这不是一个好的解决方案:
space {
floor {
}
building {
floor{
}
}
}
让我们分析一下需求。
你有 3 个对象;建筑、楼层和空间。
建筑物可以有一层或多层。
一层可以有一个或多个空间。
您应该能够从中开发对象及其关系。
这里有一些伪 C++ 可以帮助您入门。我没有提供任何公共成员 - 只是有关系的结构让你开始。
至于“一个空间可以属于多个建筑物”的问题。这是一个练习,我会留给你。
class Building;
class Space;
class Floor;
class Building
{
int number_of_floors;
vector<Floor*> _floors; // list of floors in the building
// building specific data
string name;
string address;
};
class Floor
{
Building* pBuilding; // building for which this floor belongs
int floor_number; // the floor number (e.g 1-99)
vector<Space*>; // list of spaces on this floor
};
class Space
{
public:
enum SpaceType
{
Apartment,
Store,
Office
};
private:
SpaceType _spacetype;
Floor* pFloor; // floor in which this space exists on
};