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

MVC в командной строке java

Я пытаюсь получить MVC в проекте моей командной строки.

На данный момент (без MVC, очевидно) я:

  • MainClass (фальшивое имя, очевидно), лад с помощью меню несколько раз создает объект System
  • Меню (используется опциями Main to present)
  • Система, у нее есть Модель как атрибут, созданная с помощью ввода файла или клавиатуры, она использует данные из Модели для выполнения простой операции .calculate(valueA, valueB), где valueA и valueB выбираются с помощью меню из атрибуты модели
  • Модель (вид) - это контейнер данных, которые у меня есть.

Может кто-нибудь, пожалуйста, предложите мне правильную структуру для классов?

Большое спасибо, Люк

4b9b3361

Ответ 1

Я действительно удивлен отрицательной реакцией на этот вопрос, поскольку он довольно интересный. Я ожидаю этого, потому что большинство людей считают, что MVC имеет какое-либо значение в веб-среде, но MVC полностью применим к программе CLI. Он просто представляет собой другую среду представления. Фактически, я бы счел его превосходным MVC-дизайном, который смог подключить либо интерфейс CLI, GUI, либо веб-представление без каких-либо изменений в контроллере и образцах.

Все, что говорит MVC, заключается в том, что, учитывая приложение, вы максимально абстрактно представляете часть представления - представление приложения, то, что пользователи видят и взаимодействуют, - от реальной внутренней логики приложения. То, как вы это делаете, - это создать контроллеры, которые "приклеивают" представление и любые элементы управления в нем к логике на задней панели. Проще говоря, контроллеры преобразуют вход пользователя в вызовы методов и переводят возвращаемые значения обратно в полезное для пользователя. Модельная часть шаблона несколько обсуждается. Некоторые говорят, что каждый отдельный граф объектов, который отправляется в представление для отображения, является "моделью". Другие утверждают, что весь граф объектов состояния, который живет в задней части, является "моделью", а контроллеры образуют нечто похожее на стеклянное стекло, которое позволяет просматривать, проверять и модифицировать определенные части модели. Вопрос в том, действительно ли много моделей постоянно текут вперед и назад или одна крупная модель, которая должна быть раскрыта так, как может понять пользователь.

Чтобы перейти к MVC в CLI - или к любому типу приложения - выполните часть кода, которая четко определена как представление/презентация. Он никогда не должен иметь когда-либо ничего похожего на бизнес-логику. Ваш контроллер должен быть объектами, которые знают, как реагировать на пользовательские входы и могут отправлять данные для просмотра, хотя без каких-либо предположений о том, как эти вещи будут отображаться или какие именно формы будут вноситься. Модель, так или иначе, является в основном фактическими данными или "материалами", которые интересует пользователь, и не следует забывать ни о представлении, которое показывает его, либо о контроллере, который... контролирует его.