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