2016-11-27 2 views
0

Я развиваю угловую веб-игру, где у меня есть множество квестов, в которых используется один шаблон html для представления. Проблема в том, как организовать Угловой код.Должен ли я иметь больше угловых служб или контроллеров?

Должен ли я иметь только один контроллер (который будет содержать логику не квест) и использует кучу сервисов (по одной для каждой конкретной квеста)? У контроллера, вероятно, был бы большой блок if/else, чтобы использовать правильный сервис для выбранного квеста.

Или у меня должен быть один контроллер для каждого квеста? Таким образом, мы можем использовать меньше услуг в целом и делиться ими среди различных контроллеров для квестов.

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

ответ

1

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

Quest 1 = контроллер 1 -> инъекционные все услуги, необходимые для этого квеста
Quest 2 = контроллер 2 -> инъекционные все услуги, необходимые для этого один
.......

1

Вы не можете использовать код между контроллерами. Если вы хотите иметь меньше дублированного кода, вам следует создать службы, чтобы вы могли совместно использовать код между ними и контроллерами.

0

Хорошее описание угловых контроллеров и угловых служб можно найти в earlier post

Я бы рекомендовал использовать контроллер для каждого квеста. Внесите службы в каждый контроллер, которые имеют отношение к этому конкретному квесту. Хотя вам все равно нужно писать службы для обмена данными/логикой с контроллером, вы можете избежать ненужных служебных инъекций, а также массивный if/esle-блок

Смежные вопросы