软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
PEAA笔记五:Row Data Gateway

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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,这将有效的减少业务逻辑的重复代码




相关文章

相关软件