-1

これらの要件に対するエレガントなOOP設計は何でしょうか?

「建物、床、スペースのクラス構造を設計します。スペースには、アパート、店舗、オフィスなどがあります。興味があると思われるプロパティ、フィールド、メソッドをすべて含めてください。」

私はこれを試しましたが、それは良い解決策ではないと思います:

space {
    floor {
    }
    building {
        floor{
        }   
    }
}
4

2 に答える 2

2

ここにあなたが始めるためのいくつかのpseduoC++があります。私は公開メンバーを提供しませんでした-あなたが始めるための関係を持つ構造だけです。

「空間は複数の建物に属することができる」という問題について。それは練習です、私はあなたに任せます。

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
};
于 2013-01-14T08:39:05.573 に答える
2

要件を分析してみましょう。

3つのオブジェクトがあります。建物、床、およびスペース。

建物は1つ以上のフロアを持つことができます。

フロアには1つ以上のスペースを含めることができます。

これからオブジェクトとその関係を開発できるはずです。

于 2013-01-14T03:24:19.597 に答える