数据源架构模式

表数据入口

一个实例代表处理一张表中所有的行

通常是无状态的

interface Person {
    RecordSet find(int id);
    RecordSet findWithXXX(...);
    void update(...);
}

表数据入口可能是最简单的数据库接口模式

行数据入口

一个实例代表一条记录

class Person {
    name,age;
    insert();
    update();
}
interface PersonFinder {
    Person find(...);
}

活动记录

一个包装表或视图中某一行的对象,封装了对数据库的操作访问

class Person {
    name,age;
    insert();
    delete();

    bool isAudlt();
}

活动记录的本质是一个领域模型

活动记录的数据结构应该与数据库完全吻合

活动记录与行数据入口的区别在于行数据入口只有数据访问,二活动记录封装了一些逻辑

使用

  • 活动记录适用于不太复杂的逻辑
  • 活动记录使对象与数据库的耦合过紧

数据映射器

在对象和数据库之间的一个中间层

数据映射器自身不被领域层所察觉

interface PersonMapper {
    Person select(...);
    update(Person);
}

当需要分离对象与数据库时,使用数据映射器

results matching " "

No results matching " "

results matching " "

No results matching " "