Шаблон проектирования MVC (Model-View-Controller) фактически существовал в течение нескольких десятилетий и использовался во многих различных технологиях. Все от Smalltalk до C ++ и Java, и теперь C Sharp и .NET используют этот шаблон проектирования для создания пользовательского интерфейса.
Ниже приведены некоторые существенные особенности шаблона MVC —
-
Первоначально он назывался Thing-Model-View-Editor в 1979 году, а затем был упрощен до Model-View-Controller.
-
Это мощное и элегантное средство разделения проблем в приложении (например, отделение логики доступа к данным от логики отображения) и очень хорошо применяется к веб-приложениям.
-
Его явное разделение интересов добавляет небольшую дополнительную сложность к дизайну приложения, но экстраординарные преимущества перевешивают дополнительные усилия.
Первоначально он назывался Thing-Model-View-Editor в 1979 году, а затем был упрощен до Model-View-Controller.
Это мощное и элегантное средство разделения проблем в приложении (например, отделение логики доступа к данным от логики отображения) и очень хорошо применяется к веб-приложениям.
Его явное разделение интересов добавляет небольшую дополнительную сложность к дизайну приложения, но экстраординарные преимущества перевешивают дополнительные усилия.
Архитектурный шаблон MVC разделяет пользовательский интерфейс приложения на три основные части.
-
Модель — набор классов, который описывает данные, с которыми вы работаете, а также бизнес-логику.
-
Вид — определяет, как будет отображаться пользовательский интерфейс приложения. Это чистый HTML, который решает, как будет выглядеть пользовательский интерфейс.
-
Контроллер — набор классов, который управляет связью от пользователя, общим потоком приложения и логикой приложения.
Модель — набор классов, который описывает данные, с которыми вы работаете, а также бизнес-логику.
Вид — определяет, как будет отображаться пользовательский интерфейс приложения. Это чистый HTML, который решает, как будет выглядеть пользовательский интерфейс.
Контроллер — набор классов, который управляет связью от пользователя, общим потоком приложения и логикой приложения.
Идея позади MVC
Идея состоит в том, что у вас будет компонент, называемый представлением, который несет исключительную ответственность за отображение этого пользовательского интерфейса, будь то HTML или действительно ли это виджеты пользовательского интерфейса в настольном приложении.
Представление взаимодействует с моделью, и эта модель содержит все данные, которые необходимо отобразить. Представления вообще не имеют большой логики внутри них вообще.
В веб-приложении представление может вообще не иметь никакого кода, связанного с ним. Это может быть просто HTML, а затем несколько выражений о том, где взять фрагменты данных из модели и вставить их в правильные места внутри HTML-шаблона, который вы создали в представлении.
Контроллер, который организует это все. Когда поступает HTTP-запрос для приложения MVC, этот запрос направляется на контроллер, а затем он может связаться с базой данных, файловой системой или моделью.