【发布时间】:2009-12-28 18:54:26
【问题描述】:
我现在想确认一下我对 Data Mapper 模式的看法。所以我们开始:
A 部分:
数据映射器是一个类,用于创建、更新和删除另一个类的对象。示例:一个名为 Cat 的类和一个名为 CatDataMapper 的数据映射器。还有一个名为cats 的数据库表。但它也可以是一个名为cats.xml 的xml 文件,或一个名为cats 的硬编码数组。 Data Mapper 的全部意义在于将使用 Cat 类的业务逻辑从思考“如何获得现有的猫”或“如何拯救猫”、“在哪里拯救猫”的思考中解放出来。作为 Data Mapper 的用户,它看起来像一个带有明确定义的方法的黑盒,例如 getCat(int id)、saveCat(Cat catObject)、deleteCat(Cat catObject) 等。
B 部分: 首先我认为如果 Cat 继承自 CatDataMapper 会很聪明,因为调用这样的函数会更方便一些。例如,像 catWithId(int id) 这样的方法可以是静态的(类方法)并返回一个 Cat 的实例,并使用来自 anywhere 的数据进行初始化。当我在代码中使用 cat 对象时,我可以简单地调用 myCat->save();将其存储在 Data Mapper 将其存储的任何位置(不管在哪里以及如何,Data Mapper 都会向用户隐藏这种复杂性)。
总之,我现在有点困惑;) 您认为 Section A 对 Data Mapper 模式有效吗?如果我按照B 节 中的说明额外执行此操作,会不会很糟糕?为什么?
【问题讨论】:
标签: oop datamapper