Подтвердить что ты не робот

MVC (model-view-controller) - можно ли это объяснить простым языком?

Мне нужно объяснить не очень-техническому менеджеру концепцию MVC (model-view-controller) и столкнуться с трудностями. Проблема в том, что объяснение должно быть на уровне "ваша бабушка получит его" - например, даже довольно простое объяснение, предложенное на странице MVC Wiki, не работало, по крайней мере, с моим комментарием.

Кто-нибудь имеет ссылку на хорошее объяснение MVC простыми словами?

В идеале это было бы сделано с примерами метафоры нетехнических (например, аналогичными "Шаблон Decorator - как очки" ). Одна из причин, по которой я потерпел неудачу, состояла в том, что все примеры MVC, которые я мог придумать, связаны с развитием.

Я однажды увидел список объяснений шаблонов, но, насколько мне известно, MVC не был на нем.

Спасибо!

4b9b3361

Ответ 1

Как насчет этого - с головы до ног, надеюсь, это сработает для вас.

MVC может быть метафорически связан с телевизором. У вас есть различные каналы, с различной информацией о них, предоставляемой вашим провайдером кабелей (модель). На экране телевизора отображаются эти каналы (вид). Нажатие кнопок на пульте дистанционного управления влияет на то, что вы видите и как вы его видите (контроллер).

Я смотрел телевизор, поэтому у меня есть вдохновение отсюда!

Ответ 2

Я не доверяю метафорам. Но это не сложно объяснить:

  • Модель является частью кода, который знает вещи
  • Вид является частью кода, который показывает, что знает Модель.
  • Контроллер является частью кода, который получает команды от пользователя и сообщает "Показать, что показывать" и "Модель", что нужно знать.

Ответ 3

Лучший способ описать это:

  • Модель - это источник данных. Это хранилище базы данных, это код, необходимый для добавления/удаления/обновления/изменения информации, которую вы склад.
  • Вид - это часть, с которой пользователь видит и взаимодействует. HTML-код страницы, окна приложения.
  • Контроллер - это код, который выходит за рамки представления к модели. Если вы нажали кнопку "Удалить", она обрабатывает бизнес-логику и правила (вы уполномоченное лицо для удаления? запись и т.д.).

В представлении не нужно ничего знать о модели. Модель не должна ничего знать о представлении. Контроллер - это то, что женится на источнике информации (модели) с выходом (View).

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

В дополнение к чему-то вроде OpenGL или DirectX - и он действует как средний слой между ними. Разработчики игр могли писать на интерфейс DirectX - вместо разных наборов инструкций карт. Это освободило разработчиков игр от необходимости знать о конкретной видеокарте. Он освободил разработчиков карт, чтобы иметь возможность проектировать набор инструкций DirectX.

В этом случае вы играете в игру Вид, DirectX - это Контроллер, а Модель - это видеокарта.

Ответ 4

MVC Подумайте об этом как "Сведения о заказе (включая информацию о клиенте и сотрудниках)", "Форма HTML/ASP (для отображения OrderDetails)" и "Класс обслуживания деталей заказа" (с методами SaveOrderDetails, GetOrderDetails и т.д.).

Модель (класс данных, например, OrderDetails)

The data you want to Display

Контроллер (класс обслуживания)

Knows about the Model (Order Details)
Has methods to manage the Model
And as such can be unit tested Its Single Responsibility is to manage the OrderDetails CRUD operations.
It knows NOTHING about the View

Вид (страница ASP)

Displays the Model (OrderDetail ViewData).
It has to know about the Model structure so it can correctly display the data to the users on screen.
The View structure (style, layout, HTML etc., locale) can be changed at anytime without it changing anything in the application functionality.
And as such, many Views can display the same Model in many different ways.
In multi-tenant web applications, Customer specific Views can be stored in a database table and displayed based on Customer information

Ответ 5

Расскажите "вашей бабушке", что вы модель (вы делаете работу), он является контролером (т.е. менеджером среднего звена), и представление похоже на маркетинг, они получают все кредиты.