2. 抽象工厂模式(Abstract Factory) ---------- 创建型模式
来源:互联网 发布:无锡黑盒软件测试招聘 编辑:程序博客网 时间:2024/05/18 02:34
1. 抽象工厂的目的是提供一个创建一系列相关或具有相似行为对象的实例,而无需指定它们具体的类。
2. 举例, 数据库访问中, 如果我们要求我们的系统支持SQL SERVER, Oracle等数据, 根据不同用户的需求, 切换不同的数据库. 我们不想到处用if else判断用户的需求的话, 抽象工厂就可以大派用场了.
例如我们先定义抽象工厂, 然后两个实际访问数据库的类都继承此工厂. 然后利用抽象工厂生成其需要的实例.
using System;
using System.Reflection;
namespace AbstractFactory
{
/**//// <summary>
/// AbstractFactory类
/// </summary>
public abstract class AbstractFactory
{
public static AbstractFactory GetInstance()
{
string factoryName = ConfigurationManager.AppSettings["DBFactory"];
AbstractFactory instance;
if(factoryName != "")
instance = (AbstractFactory)Assembly.Load(factoryName).CreateInstance(factoryName);
else
instance = null;
return instance;
}
public abstract void Open();
public abstract void ExeQuery();
public abstract void Close();
}
public class SQLServerFactory : AbstractFactory
{
public SQLServerFactory ()
{;}
public void Open()
{; }
public void ExeQuery()
{; }
public void Close()
{; }
}
public class ORAServerFactory : AbstractFactory
{
public ORAServerFactory ()
{;}
public void Open()
{; }
public void ExeQuery()
{; }
public void Close()
{; }
}
}
在配置文件中加上, 以得取我们希望生成的类的实例.
<AppSettings>
<add key="DBFactory" value="SQLServerFactory"/>
</AppSettings>
题外话: 看代码中这句话
instance = (AbstractFactory)Assembly.Load(factoryName).CreateInstance(factoryName);
利用C#反射生成一个在config文件中配置的 SQLServerFactory的类的实例. 这种不通过在代码中直接通过new生成实而通过配置文件反射生成实例的方法被称为IOC(反转控制,又名依赖注入), 目的是利用配置文件, 达到在运行时决定生成实例的类型, 避免在代码中硬编码从而达到解偶的目的. 这样用户可以随时更改SQLServerFactor或者ORAServerFactory , 来访问不同的数据库.
- 2. 抽象工厂模式(Abstract Factory) ---------- 创建型模式
- Abstract Factory抽象工厂(创建型模式)
- 创建型模式 ABSTRACT FACTORY---抽象工厂
- Abstract Factory 抽象工厂(创建型模式)
- 【创建型模式】abstract factory(抽象工厂)
- 【创建型模式】abstract factory(抽象工厂)
- 创建型-抽象工厂模式(abstract factory)
- 创建型模式2:抽象工厂模式(Abstract Factory)
- 创建型模式:抽象工厂模式(Abstract Factory Pattern)
- 设计模式-创建型-抽象工厂模式(Abstract Factory)
- Abstract Factory模式(抽象工厂模式 创建型)
- 创建型模式之抽象工厂模式(Abstract Factory)- 工厂方法模式(Factory Method)
- Abstract Factory 抽象工厂(创建型模式)
- 3. Abstract Factory 抽象工厂(创建型模式)
- 笔记3:Abstract Factory 抽象工厂(创建型模式)
- 创建型模式:Abstract Factory(抽象工厂)
- ABSTRACT FACTORY(抽象工厂)—对象创建型模式
- abstract factory(抽象工厂) 对象创建型模式
- 高质量C++/C编程指南(五)
- 高质量C++/C编程指南(六)
- 高质量C++/C编程指南(七)
- Script.NET的google论坛地址与截图
- 生成与中文字符串相对映的拼音首字母串的函数(js)
- 2. 抽象工厂模式(Abstract Factory) ---------- 创建型模式
- 试验网站#1搜索引擎优化收录情况记录(断续运行)2007-8-28
- 试验网站#3搜索引擎优化收录情况记录2007-8-28
- openCV 常用数据结构
- boost.type_traits源码整理和使用说明(1)
- cximage介绍
- Jeff Prosise com经验 总是调用 CoInitialize(Ex)
- CListBox DeleteString(int i)
- zju1648 判断两条线段是否相交