「System」という大きなクラスがあります(「System」を「House」に変更したいのですが)。システムには、窓やドアなど、さまざまなタイプのオブジェクトが含まれています。異なるタイプのオブジェクトを同じ基本クラスで処理することはできません。システムを構築するには、さまざまなタイプのオブジェクトを1つずつ追加する必要があります。また、システムを管理するには、1つ削除、すべてクリアなどの他の方法も必要です。私はそれを行う2つの方法を比較しています。1つは、Systemクラスのインターフェイスにすべてのメソッドを実装することです。もう1つは、オブジェクトの内部コンテナーを公開し、ユーザーがコンテナーのメソッドを呼び出してそれを実行できるようにすることです。私は最初のものがより良いはずだと思いますが、私が多くの異なるタイプを持っている場合、私が書く必要がある非常に多くの同様のコードがありますか?それを行うためのより良い方法はありますか?ありがとう。
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;
}