ASP.NET архитектура проекта MVC

Текущий дизайн

В нынешнем виде этот код не реализует шаблон адаптера. Что касается известных шаблонов проектирования, этот код не удовлетворяет всем, что я знаю. Вместо этого в приведенной ниже схеме используются базовые программные принципы: наследование и псевдопередача.

uml diagram

Ваша цель - «преобразовать PageInfo в ResponseDto». Я предполагаю, что вы имеете в виду, что хотите передать экземпляр ResponseDto, который инкапсулирует и делегирует классу PageInfo.

Причина, по которой это не является примером шаблона Adapter, заключается в том, что в настоящее время нет интерфейса, уникального для ResponseDto. На самом деле, он вообще не имеет интерфейса и не делегирует PageInfo & nbsp; & nbsp; Problem & nbsp; 1.

Шаблон адаптера специально создан для инкапсуляции различных интерфейсов.


Примечания / предложения / проблемы:

  • PageResponseDTO в настоящее время нарушает Закон Деметры; он слишком много знает о внутренней структуре PageInfo.
  • PageInfo ломает инкапсуляцию, раскрывая всю ее внутреннюю структуру.
  • Вместо того, чтобы PageResponseDTO копировать все из PageInfo, почему бы просто не сохранить ссылку на экземпляр PageInfo и делегировать его при необходимости?
  • Вы всегда можете скопировать интерфейс делегата, а не раскрывать его, но, если Вы копируете слишком много его функциональных интерфейсов, подумайте об этом. В «Рефакторинге» Мартин Фаулер называет это «Инкапсулировать делегат» и «Исключить человека посредине» соответственно.

6
задан 6 revs, 2 users 92% 21 January 2009 в 07:47
поделиться

2 ответа

Сравнивая традиционные 3 уровня веб-приложение ASP.NET с ASP.NET MVC, следующее становится соответствующими элементами:

Слоем Бизнес-логики и Уровнем доступа к данным вместе является Модель

Файлом ASPX является Представление

Кодом - позади (ASPX.CS) является Контроллер

Взгляните на эти ссылки для большего количества обсуждения той же темы на ТАК:

ASP.NET веб-приложение MVC по сравнению с веб-приложением ASP.NET

Как шаблон MVC отличается, если вообще, от DAL / шаблон разработки BLL?

9
ответ дан 10 December 2019 в 00:45
поделиться

Я уже запустил к проекту MVC ASP.NET. В моей архитектуре, слои почти как Ваша.

Существует Слой Объекта, соответствует Вашему Уровню доступа к данным и Бизнес-Слою, как разделенный проект к легкому для включения к другому проекту в соответствует Бизнес-Слою. И существуют Модальные средства доступа Слоя в Модальной части приложения MVC.

Вот ссылка от Asp. Сетевая Документация Mvc, которая дает немного совета структуры приложения.

1
ответ дан 10 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: