Реализует ли шаблон MVC общие задачи веб-фреймворка? - PullRequest
0 голосов
/ 11 июля 2020

Общие задачи фреймворка веб-приложений (например: Django или Laravel или. NET или пчела go):

request / response abstraction 
session state 
user authentication & authorisation 
page templating 
URL mapping 
DB access 
security 
caching

MVC шаблон проектирования реализует вышеуказанные общие задачи, как показано ниже:

  1. Отображение URL-адресов обрабатывается Контроллер компонент MVC. Контроллер направляет запросы к обработчикам . Пример: http.ServeMux - это контроллер из GOLang пакета

  2. абстракция запроса / ответа выполняется Контроллер путем регистрации обработчиков , написанных веб-разработчиком, как показано ниже:

    sm := http.NewServeMux()     // in GoLang
    
    sm.Handle("/", productHandler)
    
  3. состояние сеанса обрабатывается обработчик код, написанный веб-разработчиком

  4. Шаблон страницы обрабатывается механизмом создания шаблонов (компонент представления) MVC

  5. аутентификация и авторизация пользователя обрабатывается обработчиком кодом, написанным веб-разработчиком

  6. Доступ к БД обрабатывается модель компонент MVC.

  7. безопасность и кэширование обрабатывается обработчик код, написанный веб-разработчиком

Правильно ли это понимание шаблона проектирования MVC для реализации общих задач фреймворка веб-приложений?

1 Ответ

1 голос
/ 14 июля 2020

Существует множество определений шаблона MVC. Со временем он развивался и использовался по-разному в разных структурах и контекстах. Когда он был изобретен, не было протокола HTTP и не было части запроса / ответа. Были и другие способы обработки запроса пользователя. Со временем были изобретены новые механизмы шаблонов, и HTTP стал доминирующим протоколом в сети.

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

Общая задача фреймворка веб-приложений - служить контейнером Io C (инверсия управления) и пусть его компонент заботится о конкретных c обязанностях. Так что, если это веб-фреймворк, он, вероятно, будет иметь компоненты session, cook ie, MVC ...

  1. Методы контроллера - это просто реализация интерфейса HTTP. Сопоставление URL-адресов можно рассматривать как аргумент метода контроллера.
  2. Запрос / ответ обрабатываются веб-компонентом (сервлет в Java)
  3. Состояние сеанса обрабатывается компонентом сеанса и может быть настроено разработчиком, например, время истечения сеанса или приготовление сеанса ie тип или даже тип сеанса (база данных, в памяти)
  4. правильный
  5. Обычно в структуре есть проверенный компонент аутентификации, но он может быть записан вручную (не рекомендуется)
  6. Доступ к БД осуществляется на уровне сохранения, например JDB C в Java. Модель в MVC отвечает за данные, которые должны быть представлены на экране или отправлены пользователем.
  7. То же, что и 5
...