Ваш второй дизайн лучше чем первый.
Если позже вы захотите создать отчет, просто соберите все Result
объекты и подготовьте его.
и к каждому вопросу прикреплен объект Answer
. поэтому Questionnaire
будет содержать список Question
и Answer
объектов.
Например: Questionnaire
объект может содержать следующие атрибуты:
- Id или RollNo.
- Имя.
- Дата.
- Тема.
- Список вопросов
- Список ответов.
5 & 6 можно объединить в список Question
объекта. и этот объект может состоять из объекта Answer
. Таким образом, достаточно только списка вопросов.
Если я хочу записать ответы пользователя, нужно ли создавать объект как «Ответы», связанный с опросом и алгоритмом?
Нет, Algorithm
не нужно подключать (например, композицию) к Answer
. Он должен принимать Question
и Answer
в качестве входных данных и возвращать Result
.
У меня вопрос, какой из них лучше ОО дизайн? Или что такое правильный дизайн ОО в этом случае?
Узнайте о различных пользователях нашей системы, их ожиданиях, явных и неявных требованиях, формате ввода, формате вывода, и вы откроете для себя свой дизайн.
Например:
Как пользователь даст ответ? это простой текст, субъективный, объективный, сколько вариантов? и т.д ...