`
ribishuangba
  • 浏览: 290125 次
文章分类
社区版块
存档分类
最新评论

创建型模式在ADO.NET2.0的应用

 
阅读更多

为了解决动态访问多种数据库的问题,我们需要使用创建型模式。ADO.NET2.0提供了基于Singleton、AbstractFactory和Factory Method模式的工厂类。现在我来研究一下。

ADO.NET主要包含连接类和非连接类。这些类又被划分为四大系列:odbc,ole db,oracle,sql server。

DbConnection继承了IDbConnection接口,并且有四个子类:SqlConnection、OleDbConnection、OdbcConnection、OracleConnection。

DbCommand继承了IDbCommand接口,并且有五个子类,增加了一个对windows ce支持的类。

绝大多数ado.net的类的设计都遵循这种4大系列化的设计思想。那么很自然,创建模式应该是Abstract Factory。

DbProviderFactory是一个抽象工厂类。他提供了很多创建的方法,用来创建ADO中的不同的对象。

有四个子类分别实现了他的这些方法,这四个类为:

OdbcFactory ,OleDbFactory ,OracleClientFactory ,SqlClientFactory。很明显,这里用到了Factory Method来构建工厂类和产品类的平行层次结构。

那么这些工厂类又是怎么被创建的呢。每个类都实现了一个静态属性Instance,用来创建自己。这里用到了Singleton.

与此同时,ADO.NET提供了另外一个类DbProviderFactories.它的静态成员函数GetFactory可以通过接受参数的方式创建一个合适的工厂对象,比如字符串“System.Data.SqlClient“.这样可以简化我们的创建工作。


分享到:
评论

相关推荐

    精通ASP.NET2.0的Web2.0+电子教程.rar

    精通ASP.NET2.0的Web2.0+电子教程 本书重点介绍了使用ASP.NET 2.0(C#)技术开发Web 2.0时代的热门网 络应用系统(如RSS、Blog、Tags、Web Servicc、BBS、XML、Ajax、WIKI等 )的方法,以及开发这些系统...

    spring.net中文手册在线版

    使用ADO.NET进行数据访问 17.1.简介 17.2.动机 17.3.Provider抽象 17.3.1.创建IDbProvider类型的实例 17.4.命名空间 17.5.数据访问的方式 17.6.AdoTemplate简介 17.6.1.执行回调 17.6.2.在.NET 2.0中执行回调 ...

    asp.net知识库

    在 ASP.NET 2.0 中创建 Web 应用程序主题 ASP.NET 2.0 中的数据访问 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! 将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005 ASP.NET 2.0 ...

    北京中科信软 Visual Basic.NET培训

    案例分析:基于.NET2.0的大型电子商务系统 五 Windows 应用(Windows Forms) 创建Windows应用程序 主要Windows控件与自定义控件 WinForm中的数据处理 多文档界面 打印功能 GDI+ WinForm中的异步编程 ...

    亮剑.NET深入体验与实战精要2

    5.1.2 趣味理解ADO.NET对象模型 202 5.1.3 进水笼头——建立Connection 204 5.1.4 抽水机——Command 206 5.1.5 输水管——DataAdapter 209 5.1.6 输水管——DataReader 210 5.1.7 随用随关,释放资源 212 5.1.8 ...

    亮剑.NET深入体验与实战精要3

    5.1.2 趣味理解ADO.NET对象模型 202 5.1.3 进水笼头——建立Connection 204 5.1.4 抽水机——Command 206 5.1.5 输水管——DataAdapter 209 5.1.6 输水管——DataReader 210 5.1.7 随用随关,释放资源 212 5.1.8 ...

    Moon.Orm.NET.zip

    简单给大家一个和ADO.NET 的性能对比测试。更多有关内容请看:http://www.cnblogs.com/humble/p/3472764.html (说明:同时请求10000 条数据,此图为一网友公司对moon.orm 的测评) 易用性强 用过Moon.Orm 的用户应该...

    .net数据访问类 SQL Helper 类

    Microsoft ADO.NET 程序库是为在各种使用情况下实现对数据访问行为的精确控制而建立的。将来的 ADO.NET 版本可能会使用不同的模型来实现这个方案 SqlHelper 类提供了一组静态方法,可以用来向 SQL Server 数据库...

    LINQ 实战 1/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    SQLHelper.cs

    Microsoft ADO.NET 程序库是为在各种使用情况下实现对数据访问行为的精确控制而建立的。将来的 ADO.NET 版本可能会使用不同的模型来实现这个方案 SqlHelper 类提供了一组静态方法,可以用来向 SQL Server 数据库...

    【。net 专业】 面试题

    6.ADO.net中常用的对象有哪些?分别描述一下。 答:connection command sqladapter dataset datatable dataview等等.写不完了. 7.如何理解委托? 答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况...

    LINQ 实战 3/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 4/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 2/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 7/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 11/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 5/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 6/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 8/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 10/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

Global site tag (gtag.js) - Google Analytics