UI Design подход для анкеты - PullRequest
0 голосов
/ 11 июня 2009

Сценарий : Существует этот онлайн-вопросник, который будет заполнен различными отделами компании. Вопросы основаны на данных и различны для каждого отдела. Но для некоторых вопросов способ ввода также различен; для некоторых отделов на тот же вопрос задается ответ, выбирая значения из выпадающего списка, для других - ввод свободного текста; Опять же, для некоторых отделов вы измените заголовок против области для входа. Эта подпись не является частью вопроса. он также не поступает из базы данных на данный момент, и я бы предпочел не помещать все это в базу данных и увеличивать объединения для каждого выбора. Из двадцати странных вопросов, которые имеют такие заголовки, есть только 3 таких заголовка, которые меняются.

например.

Отдел А.)

В.) Как бы вы сюда попали? {caption: "Введите предпочитаемый способ транспортировки"} [Свободное текстовое поле]

Отдел Б.)

В.) Как бы вы сюда попали? {заголовок: «Выбрать опцию»} [Выпадающий список]

Как лучше всего спроектировать и закодировать такой веб-вопрос из приведенных ниже способов?

  • Внедрить его, используя условия if-else для каждого отдела, а также показать и скрыть элементы управления вводом согласно отделу
  • Абстрагировать все общие входные данные в родительский класс и иметь несколько дочерних классов для каждого отдела, которые содержат свое специфическое поведение для ввода данных

Есть какой-нибудь другой лучший способ?

Спасибо за ваше время. :)

1 Ответ

0 голосов
/ 23 июня 2009

Я бы рекомендовал использовать операторы if / else, чтобы показать и скрыть различные вопросы.

Причина, по которой я говорю «если / иначе» вместо подкласса, заключается в том, что вы столкнетесь с ситуацией, когда вопрос, который раньше был «общим» для всех департаментов, становится специфическим для некоторых, и вам придется рефакторинг этого вопроса для подклассов и удаление его, где это не применимо. Код if / else может быть утомительным, но не более утомительным, чем упомянутый выше рефакторинг.

Кроме того, я также призываю вас настоятельно рассмотреть вопрос о нормализации вопросов вашего опроса. Другими словами, в приведенном выше примере я хотел бы сделать произвольный текст и задать два разных вопроса. Это не меняет то, как вводятся ответы, это просто меняет то, как вы рассматриваете различные вопросы.

Причина, по которой я говорю это, заключается в том, что любой анализ ответов, который вы будете проводить, зависит от сравнения яблок с яблоками - когда вы ограничиваете или освобождаете список доступных вариантов, вы сравниваете яблоки с апельсинами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...