我有一个名为“System”的大类(我想将“System”更改为“House”)。该系统包含不同类型的对象,例如窗户和门。不同类型的对象不能被视为具有相同的基类。为了构建系统,我需要将这些不同类型的对象一一添加。而其他方法,如删除一个,清除所有也需要管理系统。我正在比较两种方法来做到这一点。一是实现类System的接口中的所有方法。另一种是暴露对象的内部容器,让用户调用容器的方法来做。我认为第一个应该更好,但是如果我有很多不同的类型,我需要编写很多类似的代码吗?有什么更好的方法吗?谢谢。
class System
{
public:
AddDoor(Door);
DeleteDoor(Door);
DeleteAllDoors();
...
AddWindow(Window);
DeleteWindow(Window);
DeleteAllWindows();
...
......
private:
vector<Door> m_doors;
vector<Window> m_windows;
}
class System
{
public:
vector<Door>& Doors();
vector<Window>& Windows();
...
private:
vector<Door> m_doors;
vector<Window> m_windows;
}