PEAA笔记六:Active Record

What is it
 Active Record包装了数据表或视图中的一行数据,封装了它的数据库访问行为,并加入了该数据的业务逻辑。也可以这样看,Active Record是加入了数据库访问行为的Domain Object ^_^

How it works
 Active Record即可以包含数据记录的所有业务逻辑,也可以只包含普通的面向数据的逻辑,将其余的业务逻辑通过Transaction Script来实现
 Active Record常常实现下面的方法:
 1。通过Sql查询结果构造一个Active Record实例
 2。为插入数据库操作预先生成一个Active Record实例
 3。静态的Finder方法,返回Active Record对象
 4。通过Active Record对象Update数据库和Insert数据库
 5。Get/Set数据域
 6。实现一些业务逻辑
 由于Active Record和数据库的紧密耦合,我们经常在此模式中看到静态的Finder方法,当然也可以把这些Finder方法放到一个类中。

When to use it
 Active Record的一个优点是比较简单,在基于单条数据记录的CRUD操作中都能很好的工作
 在Domain Model中主要的选择就是Active Record和Data Mapping,前者比较简单,而且比较适合解决对象模型恰好对应数据库中的表结构的业务领域。但是问题是如果义务逻辑比较复杂,你希望你的对象模型能够处理关系,集合,继承等等时,Active Record就力不从心了,这是就是使用Data Mapper的时候了
 Active Record的另一个问题是它把对象模型的设计紧密地和数据库结构耦合在一起,修改和重构都很困难
 如果你使用Transaction Script,那么Active Object也是一个很好的模式,它帮你减少代码重复等不好的现象。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值