现在的位置: 首页 > 综合 > 正文

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

2012年09月23日 ⁄ 综合 ⁄ 共 741字 ⁄ 字号 评论关闭

为了解决动态访问多种数据库的问题,我们需要使用创建型模式。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“.这样可以简化我们的创建工作。

 

 
 

抱歉!评论已关闭.