Где бизнес-логика c в схеме проектирования MVP? - PullRequest
1 голос
/ 14 февраля 2020

Я пытаюсь понять, как работает шаблон MVP, используя простой пример.

Я хочу показать содержимое окна, когда пользователь нажимает кнопку.

function reveal(number){
  let content;
  if(number==1) content = "candy"
  else if(number==2) content = "chicken"
  else content = "pencil"
  document.getElementById("box").innerHTML = "It's a " + content
}
<button onclick="reveal(1)"> box 1</button>
<button onclick="reveal(2)"> box 2</button>
<button onclick="reveal(3)"> box 3</button><br>
<h3 id="box"> </h3>

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

Теперь мои вопросы:

  1. Должен ли я поместить логи c (если ... еще раз ..) в ведущий или в модели?
  2. Для вопроса 1: Если я добавлю логи c в презентатор, значит ли это, что модель будет бесполезна?

1 Ответ

0 голосов
/ 14 февраля 2020

IMO это должно go в представлении, нет необходимости go на сервер и ждать ответа, все данные могут быть загружены мгновенно, когда пользователь делает выбор.

шаблон MVP состоит из

EventHandling = Presenter

Манипуляция DOM = Просмотр

AJAX вызовов = Модель

То, что вы показали, является клип HTML и небольшой бит соответствующего javascript, которые вместе манипулируют DOM. Можно утверждать, что часть javascript обрабатывает событие, вызванное выбором пользователей, и помещает его в часть Presenter MVP

.
...