frank oo java

我爱oo,我爱java。http://oofrank.blogchina.com

My Links

Blog统计

公告

欢迎到 oofrank@blogchina 来 QQ:421057986 email:oofrank@163.com
www.flickr.com
oofrank@flickr with my S9500

Free Download Manager
Free Download Manager

文章

收藏

相册

IT

other

存档


正在读取评论……

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也是一个很好的模式,它帮你减少代码重复等不好的现象。 

Trackback: http://tb.donews.net/TrackBack.aspx?PostId=441958


[点击此处收藏本文]  发表于2005年06月23日 6:46 PM




正在读取评论……
大名
网址
验证码
评论