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

MVCS - Служба управления представлением модели

Я долгое время использовал MVC и слышал о слое Сервис (например, в веб-проекте Java), и мне было интересно, является ли это real архитектурный образец, учитывая, что я не могу найти много информации об этом.

Идея MVCS состоит в том, чтобы иметь уровень обслуживания между контроллером и моделью, чтобы инкапсулировать всю бизнес-логику, которая может быть в контроллере. Таким образом, контроллеры должны просто перенаправлять и контролировать выполнение. И вы можете вызвать Сервис во многих контроллерах (например, веб-сайт и веб-сервис), без дублирования кода.

4b9b3361

Ответ 1

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

Например, слой полного набора может выглядеть следующим образом:

  • View Layer: ваша структура MVC и код выбора
  • Уровень обслуживания: ваш контроллер будет вызывать эти объекты слоя для получения или обновления моделей или других запросов.
  • Объекты доступа к данным: это абстракции, которые ваш уровень обслуживания будет вызывать для получения/обновления требуемых данных. Этот уровень обычно будет либо вызывать базу данных, либо другую систему (например, сервер LDAP, веб-сервис или DB типа NoSql).

Тогда сервисный уровень будет отвечать за:

  • Возврат и создание вашей "Модели" из разных источников данных (или объектов доступа к данным).
  • Обновление значений в разных репозиториях/ресурсах.
  • Выполнение специфичной для приложения логики и манипуляций и т.д.

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

Ответ 2

Я сам думал об этом паттерне, не видя никакой ссылки на это где-либо еще, искал в Google и нашел здесь Ваш вопрос :)

Даже сегодня мало кто говорит или пишет о

Сервисный шаблон View-Controller.

enter image description here

Мысль, чтобы вы знали, что другие думают так же, и изображение выше, как я вижу, как это должно быть.

В настоящее время я использую его в проекте, над которым я сейчас работаю.

У меня есть это в модулях с каждым слоем на изображении выше с отдельным модулем.

enter image description here

Уровень служб является "соединителем", "посредником", "контроллером на стороне сервера" в том смысле, что контроллер на стороне "клиента" делает для клиента, "служба" - для сервера.

Другими словами, "Контроллер" на стороне Клиента только "общается" с "Сервисом", или Контроллером на стороне Сервера.

Контроллер ---> Запросы и получение от <----- сервисного уровня

Сервисный уровень выбирает или предоставляет информацию слоям на стороне сервера, которые в этом нуждаются.

Сервис сам по себе ничего не делает, кроме как соединяет уровни сервера с тем, что им нужно.

Вот пример кода:

enter image description here

Ответ 3

Вот отличная ссылка, которую вы можете найти полезной для MVCS - так называемой луковой архитектуры: http://mvcs.io/