вторник, 26 ноября 2013 г.

Паттерн MVC

Что такое паттерн?
Паттерн представляет собой некую модель или шаблон, взяв за основу который можно строить различные системы из надежных и проверенных блоков(шаблонов).

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

MVC паттерн

Так сложилось, что мне пришлось разбираться в устройстве интернет магазина OpenCart. Вещь эта хочу сказать достаточно удобная и надежная, но не смотря на то, что разработчики говорят, что opencart - ПО из "Коробки", то есть только поставил и уже можно работать, некоторые моменты приходится допиливать для того, чтобы все работало как хочется.

Так вот именно Open Cart и является ярким примером воплощения MVC паттерна.

Смысл этого шаблона заключается в том, что все компоненты приложения придерживаются архитектуры Модель-Вид-Управление(Model-View-Control).

Разберем конкретнее за что каждая из трех частей должна отвечать.

Модель
Модель отвечает исключительно за обработку данных в приложении. Например за извлечение данных из БД, за валидацию данных и пр.

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

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


Реальной причины, почему паттерн называется именно MVC я не знаю, но я читал множество рассуждений о том что проектировщики паттернов всегда вкладывают в название огромный смысл.

Комментариев нет:

Отправить комментарий