OOA 中的课程设计

问题描述 投票:0回答:1

我们想应用面向对象的设计来设计一个参加考试和得到结果的过程。 有两种不同的看法:

  1. 有2个对象:问卷和算法。调查问卷存储问题和最终结果,算法用于计算得到结果;

  2. 一共有3个对象:调查问卷、算法和结果,这里将结果分离为一个对象,仅用于存储结果。

我的问题是哪一种是更好的面向对象设计?或者,在这种情况下,什么是正确的 OO 设计?

如果我想记录用户的答案,是否需要创建一个与问题和算法相关的“答案”对象?

oop design-patterns object-oriented-analysis
1个回答
1
投票

你的第二个设计比第一个更好。

如果稍后您想生成报告,只需收集所有

Result
对象并准备即可。

并且,每个问题都会附加一个

Answer
对象。所以
Questionnaire
将包含
Question
Answer
对象的列表。

例如:

Questionnaire
对象可能包含以下属性:

  1. Id 或 RollNo。
  2. 姓名。
  3. 日期。
  4. 主题。
  5. 问题列表
  6. 答案列表。

5 和 6 可以组合成

Question
对象列表。并且这个对象可能由一个
Answer
对象组成。因此,只需问题列表就足够了。

如果我想记录用户的答案,是否需要创建一个与问题和算法相关的对象作为“答案”?

不,

Algorithm
不需要连接(例如组合)到
Answer
。它应该以
Question
Answer
作为输入并返回
Result

我的问题是哪一种是更好的面向对象设计?或者,在这种情况下,什么是正确的 OO 设计?

找出我们系统的不同用户、他们的期望、显式和隐式要求、输入格式、输出格式,然后您将发现您的设计。

例如:

用户将如何提供答案?是简单的文字,主观,客观,有多少种选择?等等...

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.