gdzie w MVC rysuje się granicę między kontrolerem a modelem? [zamknięte]

Widziałem kod napisany, gdzie prawie cały kod niezwiązany z trasą jest przekazywany do modelu. Widziałem również kod, w którym cała trwałość bazy danych jest obsługiwana przez model, ale przetwarzanie bez DB jest obsługiwane przez kontroler.

Które jest lepsze podejście?

Author: stillstanding, 2010-08-17

1 answers

Linia pomiędzy kontrolerem a modelem jest dość wyraźna.

Model jest sercem Twojej aplikacji. Zawiera logikę biznesową / domenową wymaganą do rozwiązania problemu, dla którego została napisana aplikacja. Model jest zwykle warstwowany na kilka innych warstw, np. trwałość, usługi, domena itp. Jest to powszechne błędne przekonanie, że Model jest tylko bazą danych, tak samo jak jest to powszechne błędne przekonanie, że baza danych powinna być ActiveRecord.

Kontroler (i Widok) są częścią warstwy prezentacji. Wyłączną odpowiedzialnością administratora jest otrzymywanie i przetwarzanie danych użytkownika skierowanych do aplikacji użytkownika i przekazywanie ich odpowiednim częściom modelu. Nic więcej. Nie powinien obsługiwać skomplikowanego przepływu aplikacji lub kodu domeny problemu. Chcesz, żeby Kontrolery były chude, a modelki grube z logiką. Model nie powinien wiedzieć o C lub V i powinien być w stanie wymienić V i C na inną warstwę prezentacji bez konieczności dotykania swojego M.

Zobacz MVC Excerpt in Patterns of Enterprise Application Architecture

 39
Author: Gordon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:02