我听过“脂肪模型,薄控制器”这个短语,相信我理解它的含义。在完成Zend Quickstart Guide工作时,我遇到了表数据网关模式。
在我看来,这种设计模式提倡MVC堆栈的第四个组件。它正在从“胖模型”转变为“瘦模型,瘦控制器和胖胖的TableDataGateway”。根据我对这种设计模式的理解,模型变得只是TableDataGateway填充数据的存储机制。
我理解表格数据网关设计模式的优点,抽象我们的数据源,我的问题不是关于设计模式,而是它如何适应MVC堆栈。
P.S。我有点难以将问题转化为好话。如果有人想编辑它以使其更清楚或提出建议我就是开放的!
答案 0 :(得分:8)
MVC架构可以更新如下:
+------------+
| Controller |
+------------+
^ ^
| | +------------+ +-------------+
| |-------> | Model | <--> | Data access |
| | +------------+ +-------------+
| |
v v
+------------+
| View |
+------------+
数据访问部分只是另一个抽象级别(基于数据网关设计模式,或任何其他模式/技术),它是与持久级别(文本文件,数据库或任何其他)进行通信的特定部分如果您需要更改应用程序中的持久性级别(即:从MySQL转到Oracle),可以轻松替换它。
这样,您必须重写的唯一部分是数据访问级别,而应用程序的其余部分仍然有效。现在,模型的任务是以一种可以由控制器或视图使用的方式格式化数据。
这可能不是最好或最完整的答案,但它至少是一个开始。