设计模式-依赖映射(Dependent Mapping)

让一个类为部分类执行数据库映射。

例如:唱片被加载或者保存时,唱片上的所有曲目都可能被加载或者保存,如果没有被数据库中的其他表引用,可以通过唱片映射器为曲目执行相关映射,这种映射就是依赖映射。

运行机制

基本思想:在数据库持久化时,数据库中的某个类(依赖者)依赖于其他类(所有者)。每个依赖者有且仅有一个所有者。

  • 对于活动记录和行数据入口,依赖者类不包含数据库映射代码,都写在所有者中
  • 表数据入口中,通常根本没有依赖者类,也是在所有者中完成。
  • 依赖者的一个重要特性就是它没有标识域,因此就不用存储到一个标识映射中,也不能由查找方法通过ID加载。
  • 一个依赖者也可能是另外一个依赖者的所有者,这时,一个所有者控制所有依赖者层级。
  • 由于依赖者的写和保存都是所有者来做,并且没有外部引用,因此对依赖者的更新可以通过删除和插入处理。
  • 对所有者是否变化进行跟踪的过程变得复杂。

使用时机

  • 当一个对象只被另一个对象引用的时候,使用依赖映射。
  • 要满足的前置条件是:每个依赖者必须恰好有一个所有者;不能有任何除所有者之外的对象拥有对依赖者的引用。
  • 在工作单元里,建议不用依赖映射,因为工作单元不能控制依赖者。

依赖映射示例-唱片和曲目(java

Step1 :建立曲目和唱片类

Step2 :处理所有者的同时处理依赖者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值