занятия по дизайну в ООА - PullRequest
       40

занятия по дизайну в ООА

3 голосов
/ 18 января 2012

Мы хотим применить ОО для разработки процесса сдачи экзамена и получения результата.Есть два разных мнения:

  1. Есть 2 объекта: анкета и алгоритм.Анкета хранит вопросы и конечный результат, а алгоритм предназначен для вычисления, чтобы получить результат;

  2. есть 3 объекта: анкета, алгоритм и результат, и здесь, результат разделяетсябыть одним объектом, который просто для хранения результата.

Мой вопрос, какой из них лучше ОО дизайн?Или, каков правильный дизайн ОО в этом случае?

Если я хочу записать ответы пользователя, нужно ли создавать объект как «Ответы», который связан с вопросником и алгоритмом?

1 Ответ

1 голос
/ 18 января 2012

Ваш второй дизайн лучше чем первый.

Если позже вы захотите создать отчет, просто соберите все Result объекты и подготовьте его.

и к каждому вопросу прикреплен объект Answer. поэтому Questionnaire будет содержать список Question и Answer объектов.

Например: Questionnaire объект может содержать следующие атрибуты:

  1. Id или RollNo.
  2. Имя.
  3. Дата.
  4. Тема.
  5. Список вопросов
  6. Список ответов.

5 & 6 можно объединить в список Question объекта. и этот объект может состоять из объекта Answer. Таким образом, достаточно только списка вопросов.

Если я хочу записать ответы пользователя, нужно ли создавать объект как «Ответы», связанный с опросом и алгоритмом?

Нет, Algorithm не нужно подключать (например, композицию) к Answer. Он должен принимать Question и Answer в качестве входных данных и возвращать Result.

У меня вопрос, какой из них лучше ОО дизайн? Или что такое правильный дизайн ОО в этом случае?

Узнайте о различных пользователях нашей системы, их ожиданиях, явных и неявных требованиях, формате ввода, формате вывода, и вы откроете для себя свой дизайн.

Например:

Как пользователь даст ответ? это простой текст, субъективный, объективный, сколько вариантов? и т.д ...

...