C#实现工厂模式简介--实现访问不同的数据库
首先是配置文件:其中的providerName就是指定的不同数据库类型
- <connectionStrings>
- <addnameaddname="..."connectionString="..."providerName="System.Data.OleDb"/>
- <addnameaddname="..."connectionString="..."providerName="System.Data.SqlClient"/>
- </connectionStrings>
下面看一下使用工厂的这个类:
- class DataBaseFac
- {
- private DbConnection cnn;//抽象类型
- private DbCommand cmd;//抽象类型
- private DbProviderFactory provider;
- public DataBaseFac()
- {
- //从配置文件中取出标示数据库类型的字符串
- string providerName=ConfigurationManager.ConnectionStrings[1].ProviderName;
- //根据上一部的结果工厂创建一个对应的实例
- provider=DbProviderFactories.GetFactory(providerName);
- //使用该实例就可以创建对应的connection,command和adapater对象了
- //调试的时候可以看到这几个对象都变成了相应于数据库类型的
- cnn=provider.CreateConnection();
- cnn.ConnectionString=ConfigurationManager.ConnectionStrings[1].ConnectionString;
- cmd=provider.CreateCommand();
- cmd.Connection=cnn;
- }
- //执行一次查询,返回数据表
- public DataTable ExcuteQuery(string queryString)
- {
- DataTable result=new DataTable();
- DbDataAdapter adapter=provider.CreateDataAdapter();
- cmd.CommandType=CommandType.Text;
- cmd.CommandText=queryString;
- adapter.SelectCommand=cmd;
- try
- {
- cnn.Open();
- adapter.Fill(result);
- }
- catch
- {
- result=null;
- }
- finally
- {
- cnn.Close();
- }
- return result;
- }
C#实现工厂模式简介--实现访问不同的数据库相关推荐
- 【设计模式】抽象工厂模式 ( 简介 | 适用场景 | 优缺点 | 产品等级结构和产品族 | 代码示例 )
文章目录 一.抽象工厂模式简介 二.抽象工厂模式适用场景 三.抽象工厂模式优缺点 四.产品等级结构和产品族 五.抽象工厂模式代码示例 1.冰箱抽象类 2.美的冰箱实现类 3.格力冰箱实现类 4.空调抽 ...
- 工厂模式简介-作用和好处
工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A(). 工厂模式也是用来创建实例对象的,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改 ...
- Net设计模式之抽象工厂模式(Abstract Factory Pattern)(1)
一.抽象工厂模式简介(Bref Introduction) 抽象工厂模式(Abstract Factory Pattern),提供一个创建一系列相关或者相互依赖对象的接口,而无需制定他们的具体类.优点 ...
- JAVA 设计模式(三)—— 设计模式之工厂模式
文章目录 一.工厂模式概述 1.工厂模式简介 2.工厂模式分类 二.简单工厂模式 1.简单工厂模式示例 2.简单工厂模式分析 三.工厂方法模式 1.工厂方法模式示例 2.工厂方法模式分析 四.抽象工厂 ...
- 【JavaScript设计模式张容铭】抽象工厂模式深度剖析——关于继承与constructor属性的深度理解
写在前面 最近阅读了张容铭的<JavaScript设计模式>一书,阅读到抽象工厂模式一节时对书上的代码产生了疑问,但同时在解决疑问的过程中,对继承又产生了新的理解. 我仔细查阅了很多文章, ...
- 研磨23种大话设计模式------简单工厂模式 + 工厂方法模式 + 抽象工厂模式
大家好,我是一位在java学习圈中不愿意透露姓名并苟且偷生的小学员,如果文章有错误之处,还望海涵,欢迎多多指正 如果你从本文 get 到有用的干货知识,请帮忙点个赞呗,据说点赞的都拿到了offer 简 ...
- 工厂模式(Factory Patter)
1.工厂模式简介 工厂模式属于创建型模式,是专门用来创建对象的模式,抽象了实例化的过程.工厂模式分为 : 工厂方法模式.抽象工厂模式. 在学习工厂方法模式.抽象工厂之前,首先先要了解一下简单工厂模式, ...
- GOF23设计模式(创建型模式)工厂模式
目录: 一:工厂模式的核心本质 二:关于面向对象的六大基本原则 三:工厂模式的三大类详解(代码示例,详细分析) 首先,上咱本GOF23所有工厂模式的分类表格!!! 创建型模式 单例模式.工厂模式.抽象 ...
- Net设计模式之简单工厂模式(Simple Factory Pattern)
一.简单工厂模式简介(Bref Introduction) 简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实 ...
最新文章
- 输入法半角和全角的快捷转换_日语输入法究极指南
- 结构型模式---适配器模式
- python画折线图详解-python绘制简单折线图代码示例
- 力扣【每日温度】leetcode-739.每日温度:单调栈解法
- 服务器怎么查看性能,查看服务器进程性能查看
- 去中心化多链钱包CoinU 30问(你想要的答案都在这里)
- 天池 在线编程 输入流
- docker搭建pxc集群
- iis 创建应用程序池的方法与分析第3/3页
- 【SEU程序设计课笔记】 Mooc - Chapter 5 - (EX) - 猜数字游戏
- Yate学习--基于Windows安装和运行Yate
- OSChina 周三乱弹 —— who's your 大爷
- 使用Arduino读取RC接收机PWM信号的三种方式
- FZU 1275和UVA11624
- Linux进阶 | 实现负载均衡高可用(LB+HA)Web服务
- TCP连接的建立和中止
- CAD图纸怎么转换PDF格式?怎样转换更加高效?
- 基于 Milvus 的以图搜图系统 2.0
- PEG磷酸盐mPEG-phosphoric acid,Phosphate-PEG,甲氧基聚乙二醇磷酸,一种表面活性PEG衍生物
- unity基础(8)——3D场景添加音频