Направо към съдържанието

Model-View-Controller

от Уикипедия, свободната енциклопедия
Версия от 08:45, 4 януари 2008 на Mapto (беседа | приноси) (Нова страница: {{мъниче}} [[Картинка:ModelViewControllerDiagram.svg|thumb|300px|Опростена диаграма, изобразяваща взаимоотношени...)
(разл) ← По-стара версия | Текуща версия (разл) | По-нова версия → (разл)
Опростена диаграма, изобразяваща взаимоотношенията между Model, View, и Controller

Модел-Изглед-Контролер (Model-View-Controller или MVC) е архитектурен шаблон за дизайн.

Описание

  • Model - ядрото на приложението; обикновено това са данните от реалния свят, които сме моделирали и над които искаме да работим - да въвеждаме, променяме, визуализираме и т.н.; Например в банково приложение това биха били класовете, описващи клиентите, техните сметки, транзакциите, които са осъществили и т.н., както и класовете за извършване на операции над тези обекти (engines) - например клас Transfer с методи като createInterBankTransfer(), createInnerBankTransfer(), getCash() и т.н.
  • View - визуализация на данните от модела; Например View-то може да са PHP шаблонни класове, JSP страници, ASP страници, JFrame наследници в Swing приложение. Зависи от това какво ГУИ правим и каква платформа ползваме;
  • Controller - ако извличаме данните от модела направо в ГУИ-то (както беше практика в PHP и JSP до преди време), е много вероятно да възникне някаква грешка например по средата на пращане на HTML страницата до клиента. И ефекта не е добър. За това се използва Controller - това е допълнителен клас, които взима данните от модела или извиква разни методи върху модела, подготвя тъй да се каже в "предварително смлян" вид данните, и чак след това ги дава на View-то. Например може да създадеш едно малко обектче, в което да сложиш данните за транзакцията - като в Controller-а вземеш данните за транзакцията от модела, приведеш датите от UNIX формат във четим от потребителя формат, преобразуваш валутата от долари в евро например, закръглиш до втория знак вместо да вижда данните както са в модела (и в базата) до 10тия. Също така ако правим Web GUI това би довело до много лесна модификация на HTML кода дори от човек, който не е програмист - той ще гледа на шаблона просто като на обикновена HTML страница.

Външни препратки

  • Model-View-Controller Song
  • книга: Ралф Джонсън, Ричард Хелм, Ерик Гама, Design Patterns (Шаблони за дизайн): Елементи на обектно-ориентирания софтуер за многократно използване, СофтПрес