Шлюз и модель табличных данных - PullRequest
2 голосов
/ 24 января 2011

Я слышал фразу "толстая модель, тонкий контроллер" и, кажется, понимаю, что это значит Работая с Zend Quickstart Guide , я столкнулся с шаблоном Table Data Gateway.

Мне кажется, что этот шаблон проектирования поддерживает четвертый компонент в стеке MVC. Он переходит от «толстой модели» к «тонкой модели, тонкому контроллеру и толстому TableDataGateway». Из моего понимания этого шаблона проектирования Модель становится чуть более чем механизмом хранения данных, которые TableDataGateway вставляет в нее.

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

P.S. Мне тяжело понять мой вопрос в добрых словах. Если кто-то хочет отредактировать это, чтобы сделать его более понятным или сделать предложение, я открыт!

1 Ответ

8 голосов
/ 24 января 2011

Схема MVC может быть обновлена ​​следующим образом:

+------------+
| Controller |
+------------+
    ^   ^
    |   |          +------------+      +-------------+
    |   |------->  | Model      | <--> | Data access |
    |   |          +------------+      +-------------+
    |   |
    v   v
+------------+
| View       |
+------------+

Часть доступа к данным - это просто другой уровень абстракции (на основе шаблона проектирования шлюза данных или любого другого шаблона / метода), которыйконкретная часть, которая говорит с вашим постоянным уровнем (текстовые файлы, база данных или любой другой), который может быть легко заменен, если вам когда-либо понадобится изменить свой постоянный уровень в вашем приложении (то есть: переход с MySQL на Oracle).

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

Это может быть не самый лучший или самый полный ответ, но, по крайней мере, его начало.

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