5

私はこの問題に取り組んでいます。私は数学の問題を作成しています。それぞれに応答があります。例えば。

  • 私の質問が「5x + 15 = 2 の結果」に関するものであれば、、私は(整数として)1つの答えだけを待っています。
  • 私の質問が「この形状の面積と許可者を教えてください」というものである場合は、 2つの回答(ダブルスとして)を待ちます。
  • 別のものでは、文字列の応答として待機します
  • また、さまざまなデータ型でいくつかの回答または応答を得ることができます。

私の大きな疑問は.

クラスの質問と回答の関係はどうなるでしょうか。また、これがアソシエーション、アグリゲーション、コンポジションのいずれであるかを扱っていました。

ありがとう。

編集:素晴らしい、それは構成です。最後に、上記の文によると、どのようにデザインを表現できますか? これらは私が持っているいくつかのアイデアですが、間違っていると思います。

public class Question
{
    public Response _response;
    //public List<Response>
    //public Dictionary<string, Response>

    public Question()
    {
        this._response = new Response();
    }
}

public class Response
{
}
4

2 に答える 2

22

関連付けは、すべてのオブジェクトに独自のライフサイクルがあり、所有者がいない関係です。教師と生徒の例を見てみましょう。複数の生徒が 1 人の教師と関連付けることができ、1 人の生徒が複数の教師と関連付けることができますが、オブジェクト間に所有権はなく、両方とも独自のライフサイクルを持ちます。どちらも個別に作成および削除できます。

アグリゲーションは、すべてのオブジェクトが独自のライフサイクルを持ち、所有権がある特殊な形式のアソシエーションです。子オブジェクトは別の親オブジェクトに属することはできません。部門と教師の例を見てみましょう。1 人の教師が複数の学科に所属することはできませんが、学科を削除しても教師オブジェクトは破棄されません。これは「has-a」の関係と考えることができます。

構成は再び集計の特殊な形式であり、これを「死」の関係と呼ぶことができます。集合体の強いタイプです。子オブジェクトにはライフサイクルがなく、親オブジェクトが削除されるとすべての子オブジェクトも削除されます。家と部屋の関係の例をもう一度見てみましょう。家には複数の部屋を含めることができ、部屋には独立した生命はなく、部屋は 2 つの異なる家に属することはできません。家を削除すると、その部屋は自動的に削除されます。質問とオプションの間の別の関係の例を見てみましょう。1 つの質問に複数のオプションを含めることができ、1 つのオプションを複数の質問に含めることはできません。質問を削除すると、そのオプションも削除されます。

于 2012-12-13T15:17:44.893 に答える
3

この 2 つの間には関連性があります。

質問は答えを構成します。

その理由は、集約と構成はどちらも関連性があるためです。コンポジションとは、子オブジェクトの存続期間がその親に依存することを意味します。子は親なしでは存在できません。

これはまさにあなたの場合です。したがって - 構成。

于 2012-06-29T16:55:07.290 に答える