不要让写程序变成一种负担

  博客园 :: 首页 :: 联系 :: 订阅 订阅 :: 管理
  162 Posts :: 0 Stories :: 832 Comments :: 31 Trackbacks
 

以下是描述在一个数据访问层的设计过程(只一个总体设计并不包含细节)运用基于接口编程的方法设计;以下纯属表达我个人的设计过程中方法,如果朋友有问题和见解发表出来多多交流。

在做数据库应用系统的过程经常要和数据处理对象,SQL语句打交道;做久了就发觉其实这些工作可以通过封装相应的组件来简化这方面的工作。于是就下定决心把这个组件做出来,在做之前先把以前的东西和上网看的资料总结一下,重要一点是数据在处理SQL语句有什么细节的差别如参数名标认等;明确做这个组件目的和组件需要完成的功能。

组件的功能包括:

       能处理所有实现IDbCommand接口的对象。

       支持实体对象的操作:增加、删除、修改和查询等操作。

       能对不同数据库进行操作。

组件的功能明确之后就制定相应的接口,因为我觉接口可以规范组件的开发,在编写代码的过程中不用考虑模块与模块之间细节上的实现。

组件的主要接口包括:

IDriverType 数据设备提供者描述接口

IDateSession 数据处理环境描述接口

IField      字段表达式描述接口

IExpression 查询表达式描述接口

组件还内还有很多相关接口如:.NET FrameWork IDbConnection,IDbDataAdapter和一些命令持久化应用接口等;这些都是内部处理就一一详细描述了。

IDriverType接口

       数据库提供者描述接口,主要功能是实现组件处理不同数据库的能力。是组件内部处理数据所用到的对象和生成相应SQL的关键标识的提供者。是组件的核心部分,但确是组件代码结构最简单的部份,主要是方便其他开发人员扩展出新的数据库提供者。

IDataSession接口

       数据处理环境描述接口,主要的功能是对数据库进行不同的操作;它除了能处理所有实现的IDbCommand对象以外,还能对实体对象进行增、删、改、查等操作并反映到数据库中;数据的事务处理等功能。IDataSession必须依赖于IDriverType,因为IDataSession用到数据处理对象必须由IDriverType所提供。

IField接口

       字段表达式描述接口,主要功能是描述更新和插入数据时相应的字段信息。用于处理更改个别字段所使用的。正常情况下应该使用实体对象插入或修改。

IExpression接口

       查询表达式描述接口,主要功能是生成SQL的条件表达式;通过这个接口可以实现任何复杂的条件表达式构造。因为在处理对象操作的情况下是不能和直接编写SQL条件语句相关结合,所以抽取这样一个接口结合对象操作上更方便。虽然通过IExpression可以实现任意的查询条件,但并不能说明它能代替SQL语句;毕竟在一些很复杂的查询中SQL相对来说比较直观。IExpression也是依赖于IDriverType,因为不同数据库在参数名的标识上是有区别的.

       以上是组件在设计时主要功能实现描述,为了更直观下面的整个组件实现类关系图:(下载类图)
IDriverTypeIDateSession具体实现

posted on 2005-09-15 11:52 henry 阅读(2152) 评论(9)  编辑 收藏

Feedback

#1楼  2005-09-15 23:49 binking [未注册用户]
组件实现类关系图 神仙才能看清楚!
  回复  引用    

#2楼 [楼主] 2005-09-16 09:04 henry      
不是我不想啊,这里的图片大小是受限制的.
我搞个压缩的,看的朋友可以下载.
  回复  引用  查看    

#3楼  2005-09-16 10:29 DotNetFresh      
太"概要"了吧~~~期待后续文章
  回复  引用  查看    

#4楼 [楼主] 2005-09-16 10:38 henry      
以后我会把IDriverType,IDataSession的设计的细节描述出来,一次过把所有东西都写出来也太多了.
  回复  引用  查看    

#5楼  2005-09-17 01:32 vagabond VS net      
支持!!
希望能有全部代码配以说明!!
  回复  引用  查看    

是的,看得很吃力,强烈希望配上中文说明
  回复  引用    

#7楼  2006-04-20 08:37 .NET lover [未注册用户]
@henry
我想看看啊能不能发我邮箱里啊Q
foreveryoulong@163.com
  回复  引用    

#8楼  2006-05-19 10:42 xmthor [未注册用户]
楼主搞清楚什么是概要设计先.
  回复  引用    

#9楼 [楼主] 2006-05-19 11:58 henry      
概要设计应该是
首先明确需要完成的目的,
完成这个目的需要什么东西,
每样东西的职责是怎样.
虽然本文描述不好,麻烦楼上能否给个概要设计的详细规范,
这方面的知识我是比较缺乏的.

  回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-09-17 14:27 编辑过
 
另存  打印