При использовании MVC взаимодействие с автономными периферийными устройствами относится к модели или контроллеру?

StackOverflow https://stackoverflow.com/questions/222376

Вопрос

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

Этот вопрос — моя попытка согласовать все, что я читаю, что рекламирует максиму «тощих контроллеров», с моей интуицией, согласно которой Модель должна действовать только на основе данных, а не получать их.

(Примечание:Этот вопрос мощь быть субъективным.Я не совсем уверен, что на этот вопрос существует единственный верный ответ.Если нет, смело меняйте тег, так как мне будет очень интересно услышать мнения по этому поводу.)

Это было полезно?

Решение

Он принадлежит контроллеру.Модель содержит информацию и бизнес-правила, контроллер по сути является интерфейсом для всего, что не является пользователем, информацией или бизнес-правилами, а представление занимается взаимодействием с пользователем.

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

Но я бы не ожидал, что модель будет иметь периферийные интерфейсы.

-Адам

Другие советы

Контроллер должен выполнить опрос. Модель - это моментальный снимок состояния, поэтому состояния камеры должны передаваться из контроллера в модель.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top