表数据网关和模型

时间:2011-01-24 14:09:08

标签: model-view-controller design-patterns zend-framework

我听过“脂肪模型,薄控制器”这个短语,相信我理解它的含义。在完成Zend Quickstart Guide工作时,我遇到了表数据网关模式。

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

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

P.S。我有点难以将问题转化为好话。如果有人想编辑它以使其更清楚或提出建议我就是开放的!

1 个答案:

答案 0 :(得分:8)

MVC架构可以更新如下:

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

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

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

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