MVC - это - просто 3 модели уровня?

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

5
задан Robert Harvey 18 November 2009 в 06:32
поделиться

4 ответа

Я предостерегаю от обработки модели как простого уровня доступа к данным. Это чрезмерное упрощение и приводит к тому, что вы помещаете слишком много кода на уровень контроллера. Лучше, если вы поместите больше этого кода в Модель и сделаете постоянство базы данных только частью внутреннего кода Модели. Мне нравится думать о MVC так:

  • Контроллер: обрабатывает ввод, определяет, какая модель и какое представление нужно создать.
  • Представление: представление данных приложения
  • Модель: вся остальная логика для приложения, включая DAL

, но не ограничиваясь им. Это в основном шаблон Page Controller .

Другой способ думать об этом: предположим, вам нужно было перенести свое веб-приложение на другую платформу, например приложение командной строки или настольное приложение с графическим интерфейсом. Какие части логики приложения следует использовать повторно? Контроллер и представление будут меняться при переносе приложения на другую платформу, потому что потребуется изменить реализацию как ввода, так и вывода. Код, который не нужно изменять, должен быть реализован в вашей модели.

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

Прочтите об антипаттерне Мартина Фаулера Модель анемической области или Domain Driven Design Quickly , чтобы получить некоторые другие перспективы.

Также см. Мой блог от 2008 года. , который я написал в ответ на людей, осуждающих паттерн Active Record. Он получил несколько хороших комментариев и обсуждений.

8
ответ дан 13 December 2019 в 05:37
поделиться

Типа. Это выглядит так:

alt text

На сегодняшний день наиболее часто используется шаблон:

Database -> DAL -> BLL -> Controller -> View Model -> UI

Где

DAL == Data Access Layer (aka ORM, Object-Relational mapper)
BLL == Business Logic Layer

Обратите внимание, что вам не всегда нужен каждый слой. Например, BLL и View Model могут быть необязательными, если приложение достаточно маленькое.

Вы должны проверить учебник NerdDinner. Все эти концепции описаны в одной ссылке.

3
ответ дан 13 December 2019 в 05:37
поделиться

Вот несколько замечательных объяснений, если вы новичок в MVC:

Кто-нибудь, кроме меня, просто НЕ получает ASP.NET MVC?

1
ответ дан 13 December 2019 в 05:37
поделиться

Краткое примечание, вы правы, когда говорите, что Контроллер может (не обязательно) быть бизнес-уровнем, а представление - это уровень представления.

Однако модель - это объекты (в зависимости от реализации), содержащие данные, тогда как Уровень данных - это уровень, который извлекает / обрабатывает данные.

0
ответ дан 13 December 2019 в 05:37
поделиться
Другие вопросы по тегам:

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