【发布时间】:2010-03-23 10:38:11
【问题描述】:
我有一个使用 Zend 框架的 PHP MVC 应用程序。如快速入门中所述,我使用 3 层作为模型部分:
- 模型(业务逻辑)
- 数据映射器
- 表数据网关(或数据访问对象,即每个 SQL 表一个类)
该模型是 UML 设计的,完全独立于 DB。
我的问题是:我不能拥有同一“实例/记录”的多个实例。
例如:例如,如果我得到 id=5 的用户“Chuck Norris”,这将创建一个新的模型实例,其中成员将被填充由数据映射器(数据映射器查询查询数据库的表数据网关)。然后,如果我将名称更改为“Duck Norras”,不要立即将其保存在数据库中,而是在另一个变量中重新加载相同的用户,我会遇到“同步”问题......(不同的实例相同的“记录”)
现在,我使用 Multiton / Identity Map 模式:类似于 Singleton,但多个实例由一个键索引(在我们的示例中是用户 ID)。但这让我的开发和测试变得非常复杂。
怎么做才对?
【问题讨论】:
标签: php design-patterns zend-framework oop