1

Предположим, у меня есть метод RegisterUser(), который содержит больше кода, чем просто вставка записи в базу данных. Например, возможно, есть роли, данные о местоположении и т. Д. Или у меня есть метод SendInboxMessage(), который отправляет сообщение для входящих сообщений пользователю для сайта CMS, например ... Помня, что SendInboxMessage больше, чем просто взаимодействует с «Входящие». Он должен взаимодействовать с объектами пользователя, объектами сообщений, объектами папки «Входящие» и т. Д. Опять же, просто приводим пример чего-то сложного с большим количеством объектов.Где разместить сложные операции в рамках MVC?

Где бы это было похоже на традиционный MVC?

(Примечание: Это не язык конкретных Глядя на более широкий ответ здесь.)

Спасибо!

ответ

2

Где бы это было похоже на традиционный MVC?

MVC - это способ структурирования уровня представления приложения. Но я думаю, вы говорите о классической бизнес-логике. Это должно быть частью бизнес-уровня, а не уровня представления. Бизнес-логика, о которой вы описали, обычно включается в службу домена. Служба домена - это в основном просто объект без гражданства, методы которого подвергаются воздействию уровня представления интерфейса (контракта). Методы службы домена обычно зависят от репозиториев данных или других служб домена и описывают транзакционные транзакции comlpex.

+0

Спасибо, Фрэнк. У вас есть примеры или литература, где я могу больше узнать об этом? Например. что подразумевается под «разоблачением методов по контракту» – Ricky

+0

Нет проблем. У Мартина Фаулера есть интересные статьи о различных шаблонах архитектуры графического интерфейса на его домашней странице: http://martinfowler.com/eaaDev/uiArchs.html. – Frank

+0

«Методы раскрытия по контракту» означает, что 1: Доменные службы должны быть доступны на уровне презентации. 2: вызов метода из уровня презентации должен адресовать (технический) интерфейс и, возможно, должен отвечать определенным предварительным и постконфиденциальным условиям. – Frank

Смежные вопросы