PEAA笔记五:Row Data Gateway

What is it
 Row Data Gateway对应数据源中的一个数据记录,它的一个实例就是一行数据
 
How it works
 Row Data Gateway可以和Transaction Scripts一起和谐的工作。由于它对应一行的数据,故此在使用中会面对将查找操作放置在哪儿的问题。我们可以采用静态函数的查找操作,但是这样丢掉了通过多态来生成多个相似查找操作的可行性。另一种方法是使用Row Data Gateway的时候,搭配一个finder对象。
 Row Data Gateway和Active Record比较类似,区别在于是否其中含有业务逻辑。Row Data Gateway只是包含数据访问逻辑,而没有任何业务逻辑
 使用Row Data Gateway的时候,也要注意Update数据时的逻辑。
 Row Data Gateway写起代码来比较繁琐,不过使用MeatData Mapping就好多了,数据访问代码可以自动生成

When to use it
 一般的,在使用Transaction Scripts时使用Row Data Gateway;在使用Domain Model是则不使用Row Data Gateway,对于简单的数据映射,可以采用Active Record,复杂的可以采用Data Mapper,后者对数据库有很好的封装,使得Domain Object可以不必了解数据库的结构
 有趣的是,Row Data Gateway经常可以和Data Mapper一起很好的使用,虽然这看起来增加了很多额外的工作,实际上如果Row Data Gateway是在手动添加Data Mapper时通过Metadata自动生成的的话,这样做也是很有效率的。Row Data Gateway起到了Domain Object和数据库之间的隔离带的作用,可以使你在不更改业务逻辑的基础上更改数据库结构。
 在Transaction Scripts中使用Row Data Gateway的时候,需要注意,如果你有一些业务逻辑在几个Scripts中都有出现的话,将业务逻辑加入到Row Data Gateway中,把Row Data Gateway变为Active Record,这将有效的减少业务逻辑的重复代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值