Использование бизнес-объекта на уровне представления

В трехуровневом приложении, с точки зрения лучшего дизайна / архитектуры, могу / должен ли я создать экземпляр бизнес-класса (который находится на бизнес-уровне) на уровне презентации? Я имею в виду, это плохая практика? Если да, то как можно ссылаться на любой бизнес-объект на уровне презентации? Например, как я собираюсь сохранить объект «Сотрудник» в состоянии сеанса, если я не могу создать его на уровне презентации (код программной части )?


person atiyar    schedule 25.09.2010    source источник


Ответы (1)


Если вы не создаете экземпляр бизнес-объекта на уровне представления, как бы вы его назвали? Так что тебе придется это сделать. Конечно, если вы хотите, чтобы код для бизнес-уровня запускался где-то еще, вы можете подумать о сервисах. Но тем не менее, в это время вы должны создать экземпляр прокси только из уровня бизнеса / сервиса. Так что продолжай.

person Kangkan    schedule 25.09.2010
comment
да, на самом деле я всегда так делаю, но я вижу некоторые предыдущие аргументы по этой теме здесь, в stackoverflow. некоторые говорят, что это делает дизайн тесно связанным, и об использовании интерфейса, предоставляемого бизнес-уровнем, или использовании DTO и т. д., так что как любитель / начинающий программист я немного смущен, делаю ли я неправильно или правильно (опять же, с точки зрения лучшего дизайна). - person atiyar; 25.09.2010
comment
То, что вы говорите, правильно. Если вы хотите, чтобы он был очень слабо связан, никогда не создавайте экземпляры класса напрямую. Скорее всегда используйте интерфейс и, возможно, фабричный метод, достаточно настраиваемый, чтобы фактически создавать экземпляры ваших классов. Данные, которые должны быть отправлены с одного уровня, всегда должны использовать DTO, и вы можете фактически получить свой DTO из интерфейса. Это упростит вашу жизнь, если вам понадобится изменить DTO в будущем. - person Kangkan; 25.09.2010