创建型模式在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“.这样可以简化我们的创建工作。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值