Я недавно попросил здесь помочь понять MVC, так как я очень новичок в этой теме. Я думал, что у меня было приличное понимание этого, и это задокументировано в сообщении в блоге , которое я недавно написал на эту тему. Мое понимание в основном сводится к следующему:
Контроллер: Определяет, что необходимо сделать для выполнения запроса, и использует любые модели, которые необходимо собрать / изменить по мере необходимости. Это в основном менеджер для данного процесса.
Просмотров: только презентация. Как только контроллер собирает то, что ему нужно, он создает определенный тип представления, передает ему информацию и говорит: «покажите это пользователю, как вы это делаете».
Модели: поведение приложения. Когда контроллер просит его извлечь или изменить что-то, он знает, как это сделать. Он также знает, как запускать другие модели для выполнения связанных задач (в моем понимании, когда модель пытается «проголосовать за что-то» в StackOverflow, эта модель знает, как спросить, должен ли значок также быть предоставлен из-за этого. Контроллер не нужно заботиться об этом).
Мой вопрос, если предположить, что все это более или менее точно, - куда входят объекты сущностей? Модели и сущности - это одно и то же, каждый объект знает, как сохранить свои собственные данные, или сущности - это отдельная концепция, которая существует сама по себе и используется во всем приложении?
Мои деньги лежат на последнем, поскольку это позволило бы моделям действовать независимо, в то время как все три уровня (модель, представление и контроллер) могли бы использовать объекты для передачи данных по мере необходимости. Кроме того, объекты и постоянство базы данных кажутся проблемами, которые следует разделять.
Если честно, чем больше я читаю о MVC, тем больше путаюсь. Я готов взять базовую концепцию (отдельную презентацию и логику) и работать с ней любым удобным для вас способом, и не слишком беспокоиться о метке "MVC".