表数据网关和模型

Ico*_*ood 2 model-view-controller design-patterns zend-framework

我听过"脂肪模型,瘦控制器"这个短语,相信我理解它的含义.在完成Zend快速入门指南时,我遇到了表数据网关模式.

在我看来,这种设计模式是提倡MVC堆栈的第四个组件.它正在从"胖模型"转变为"瘦模型,瘦控制器和胖胖的TableDataGateway".根据我对这种设计模式的理解,模型变得只是TableDataGateway填充数据的存储机制.

我理解表数据网关设计模式的优点,抽象我们的数据源,我的问题不是关于设计模式,而是它如何适应MVC堆栈.

PS我有点难以将问题变成好话.如果有人想编辑它以使其更清楚或提出建议我是开放的!

JF *_*ion 8

MVC架构可以更新如下:

+------------+
| Controller |
+------------+
    ^   ^
    |   |          +------------+      +-------------+
    |   |------->  | Model      | <--> | Data access |
    |   |          +------------+      +-------------+
    |   |
    v   v
+------------+
| View       |
+------------+
Run Code Online (Sandbox Code Playgroud)

数据访问部分只是另一个抽象级别(基于数据网关设计模式,或任何其他模式/技术),它是与持久级别(文本文件,数据库或任何其他)进行通信的特定部分.如果您需要更改应用程序中的持久性级别(即:从MySQL到Oracle),则可以轻松替换.

这样,您必须重写的唯一部分是数据访问级别,应用程序的其余部分仍然有效.现在,模型的任务是以可由控制器或视图使用的方式格式化数据.

这可能不是最好或最完整的答案,但它至少是一个开始.