3

OOを適用して、試験を受けて結果を得るプロセスを設計したいと考えています。次の 2 つの異なる意見があります。

  1. アンケートとアルゴリズムの 2 つのオブジェクトがあります。アンケートは質問と最終結果を保存し、アルゴリズムは結果を計算するためのものです。

  2. アンケート、アルゴリズム、結果の 3 つのオブジェクトがあり、ここでは、結果を格納するためだけの 1 つのオブジェクトに結果を分離しています。

私の質問は、どちらがより優れた OO 設計ですか? または、この場合の正しい OO 設計は何ですか?

ユーザーの回答を記録したい場合、アンケートとアルゴリズムを結び付けた「回答」としてオブジェクトを作成する必要がありますか?

4

1 に答える 1

1

あなたの 2 番目のデザインは 1 番目よりも優れています。

後でレポートを生成する場合は、すべてのResultオブジェクトを収集して準備するだけです。

そして、各質問にはAnswerオブジェクトが添付されています。とオブジェクトQuestionnaireのリストが含まれます。QuestionAnswer

例: Questionnaireobject には次の属性が含まれる場合があります。

  1. Id または RollNo.
  2. 名前。
  3. 日にち。
  4. 主題。
  5. 質問一覧
  6. 回答のリスト。

5 & 6 を組み合わせてQuestionオブジェクトのリストにすることができます。このオブジェクトは、Answerオブジェクトで構成されている場合があります。したがって、質問のリストだけで十分です。

ユーザーの回答を記録したい場合、アンケートとアルゴリズムを結び付けた「回答」としてオブジェクトを作成する必要がありますか?

いいえ、Algorithm接続する必要はありません (合成など) Answer。入力としてQuestionandを受け取り、 return を返す必要があります。AnswerResult

私の質問は、どちらがより優れた OO 設計ですか? または、この場合の正しい OO 設計は何ですか?

私たちのシステムのさまざまなユーザー、彼らの期待、明示的および暗黙的な要件、入力形式、出力形式を調べて、あなたの設計を発見してください.

例えば:

ユーザーはどのように回答しますか? 単純なテキストですか、主観的ですか、客観的ですか、選択肢はいくつありますか? 等...

于 2012-01-18T07:03:43.693 に答える