CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  软件工程/管理 >  开发方法版

有关数据层模式的疑问?

楼主XACZ(IJͷ)2005-02-04 11:30:31 在 软件工程/管理 / 开发方法版 提问

在PEAA中,作者讲解了表入口模式和行入口模式,但是在实际中应用时机怎么区分,什么情况下使用哪一种?还有,活动记录又和前两者有何区别?  
  再者,通过书中的例子,一个表入口类的方法中需要提交大量参数(表中几乎每个列都在方法参数列表中出现),我觉的这样做相当笨拙,肯定好多人觉可以将参数列表替换为实体对象,传递给数据层,但是这样的实体对象大多都会出现在分层结构中的每一层,又和模式原则相违背,我迷惑了 问题点数:0、回复次数:1Top

1 楼zengjd(一)回复于 2005-02-04 14:01:37 得分 0

首先你要明白什么是入口模式:  
  表数据入口是充当数据库表的入口,一个表入口实例处理表中所有的行.所以,简单的说,如果你用想表摸快这样的模式,那最好的选择就是表数据入口,表数据入口产生记录集,由表摸块来处理.其实如果你用表摸快模式来处理业务逻辑,除了表数据入口模式,你也别无选择,除非不用入口模式.  
  行数据入口是数据库表中单条记录的入口对象,简单的情况下,他就象一个只有数据库访问逻辑而没有任何业务逻辑的领域对象,你可以这么想,对于分析模型中的实体对象,你有两个对象来实现他,一个是封装业务逻辑的实体类,另一个就是业务逻辑的实体对象同数据库交互的入口对象,这个入口对象就是行数据入口.当然这是在实体类同数据库表一一对应的情况下你可以这么想.其实行数据入口的最好搭配是事务脚本模式.但业务逻辑复杂了,你可一对事务脚本重构,形成活动记录.  
  现在你知道什么是活动记录了吧.就是封装了数据库表中的每行的一个对象,并在这个对象中封装业务逻辑,当然最好的情况下是数据库表和业务实体类一一对应的请况下使用.否则最好用领域模型和数据映射器.  
   
  至于你说的参数传递的问题,你可以用记录集和实体对象的方式来解决,无论那种方式都没有违背模式的原则.  
  Top

相关问题

  • 有关数据类型的疑问~
  • 有关ADO访问数据库的疑问
  • 有关测试SQL Server数据库的连通状态的一些疑问
  • 菜鸟的一个有关数据库的疑问?有谁知道吗?
  • 有关SqlCommand 和OleDbCommand连接数据库时连接池的疑问?
  • 高手请进:有关线程和数据库连接的疑问???
  • IO模式下,关于数据接收的疑问,简单问题,需要澄清一下!!
  • 有关ddk疑问
  • 有关typedef疑问
  • mysql数据库疑问

关键词

  • 模式
  • 数据
  • 逻辑
  • 数据库
  • 业务
  • 入口
  • 表
  • 实体
  • 对象
  • 业务逻辑

得分解答快速导航

  • 帖主:XACZ

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo