【问题标题】:zend models architectureZend 模型架构
【发布时间】:2011-01-08 12:49:03
【问题描述】:

假设我在数据库中有两个表:项目和用户。我创建了两个扩展 Zend_Db_Table_Abstract 的模型:Model_DbTable_UsersModel_DbTable_Projects

现在,在 Model_DbTable_Users 类中创建 Model_DbTable_Projects 的实例是一个好的模式吗?换句话说:在这个模型中放置任何逻辑是否可以,或者我应该创建另一个使用Model_DbTable_UsersModel_DbTable_Projects 的类?

我习惯将所有逻辑放在扩展 Zend_Db_Table_Abstract 的模型中,但在大型项目中它会使代码非常不干净。那么,您能给我关于模型架构的任何建议吗(文章上的链接会很棒!)。

【问题讨论】:

    标签: zend-framework architecture model


    【解决方案1】:

    我是 Zend Framework 项目 1.0 版的项目负责人。我的贡献主要在 Zend_Db 组件中。

    我经常advise 认为人们应该使用Domain Model 模式并避免Anemic Domain Model 反模式。请记住,表格不是模型。

    您的模型是封装业务逻辑的代码类(不扩展基类)。 Model 和 Table 之间的关系不是 IS-A,而是 HAS-A(或 HAS-MANY)。该模型将数据库持久性视为实现细节。 Model 的使用者应该不知道您的数据库结构(这允许您在不更改 Model 接口的情况下更改数据库结构)。

    我基本上是在重复我给Models in the Zend Framework的答案。

    这里有更多阅读内容:

    【讨论】:

    • 感谢您的回答。有 Zend 框架的领域模型的例子吗?
    猜你喜欢
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 2010-09-22
    • 2012-03-06
    • 2012-06-03
    • 2011-04-06
    相关资源
    最近更新 更多