#база_данных #mvc #rest #best_practice
У меня есть контроллер, который принимает или возвращает объект юзера. Так же у меня есть база данных, которая хранит юзера. Естественно, что не все поля объекта, которые хранит бд должны отправляться сервером. Нужно ли создавать отдельные класс для сущности бд, класс, который будет отправлен сервером, и класс, который будет выполнять бизнесс-логику или можно просто создать 1 класс и уже перед отправкой решать какие поля добавлять в JSON, а какие игнорировать?
Ответы
Ответ 1
Все зависит от тяжести случая. Представьте, у вас таблица с юзером одна, а форм где показывается пользовательсная информация две. А потом Вы захотите добавить третью, не задев первые две. В случае с отдельными классами на каждую форму(запрос), Вы добавите новый класс и новую форму, а в случае с одним классом Вам придется лезть в уже рабочий(протестированный) код, менять юнит тесты. А еще это можете быть не Вы сейчас, а Вы через 3 года, или Ваш коллега. С другой стороны, если приложение одноразовое, то игра не стоит свеч.Ответ 2
Если Вы планируете следовать паттерну MVC и при этом хотите исключить какие-то данные из сущности перед отправкой клиенту, то лучше создать для этого отдельный класс и отправлять его вместо оригинальной модели. Создание и заполнение данными экземпляра этого класса можно выполнить в контроллере или, как вариант в оригинальной модели через соответствующий метод.
Комментариев нет:
Отправить комментарий