Spring Formatters внутри модели данных, это нарушение MVC? Есть ли лучшая альтернатива? - PullRequest
3 голосов
/ 27 июля 2011

Spring предоставляет средства форматирования (и преобразователи) с использованием аннотаций. Это означает, что параметр запроса может быть аннотирован на контроллере для форматирования ввода пользователя, а также свойство аннотации класса модели данных может быть аннотировано для форматирования данных для представления.

Последнее кажется мне явным нарушением главной цели MVC, а именно разделения модели и представления. Аннотирование класса модели данных с особенностями форматирования связывает модель с представлением. Если модель должна использоваться для какого-либо другого представления или для чего-либо еще, она не может этого сделать, поскольку ее поля отформатированы для конкретного представления.

Если я ошибаюсь, дайте мне знать. Если нет, есть ли способ форматировать поля и просматривать формат, не нарушая MVC?

1 Ответ

1 голос
/ 11 августа 2011

Использование аннотаций - хороший декларативный способ указать форматирование - я бы не отказался от него. Альтернативой может быть процедурный способ определения конверсий.

На мой взгляд, проблема в том, что объекты чистой модели и объекты поддержки форм смешиваются вместе. Если вы хотите «очистить» свою архитектуру, представьте вспомогательные объекты, которые будут находиться между вводом пользователя и вашей моделью. Если вы думаете, что это слишком сложно для масштаба вашего проекта, то вам это не нужно. В этом случае просто учтите, что объект модели имеет двойное значение.

...