В MVC код обработки событий должен помещаться в контроллер или представление? - PullRequest
1 голос
/ 18 ноября 2011

если пользователь нажмет кнопку, обработка этого события должна поставить на контроллер или событие? Благодарю.

1 Ответ

2 голосов
/ 18 ноября 2011

Это действительно зависит от платформы, на которой вы работаете, потому что существуют огромные различия с разработкой рабочего стола (например, WinNET Forms / WPF или. Swing против ASP.NET и Java-сервлетов или PHP, например, в .NET).

В настольном программировании система событий позволяет действительно легко (а иногда даже естественно, в зависимости от того, как вы смотрите на него) выполнять большую часть работы в самом событии, но в конечном итоге вы обнаружите, что кодируете МНОГО логика программы там, что делает ваш взгляд беспорядок. В веб-программировании это сделать труднее, потому что вы не можете использовать большую часть системной логики в браузере (вы не можете открыть соединение с базой данных, у вас нет доступа к сеансу или любой другой информации). который ранее не был доступен на сервере).

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

Короче говоря, я бы сказал, что вы должны приложить все необходимые усилия для возобновления логической программы в событиях, насколько это возможно. С некоторой практикой вы обнаружите, что делегирование логики обычному объекту вместо самого представления облегчит вашу жизнь в долгосрочной перспективе.

Со временем: тип контроллера, который вы используете, тоже может быть важен. Например, ASP.NET использует какой-либо Контроллер страниц, в то время как многие PHP и Java-среды более удобны для использования FrontController (это, конечно, не правило, но может иметь значение, как вы видите вещи).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...