教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> .NET类 >> ASP.NET >> 设计模式C#描述——抽象工厂模式 RSS订阅
设计模式C#描述——抽象工厂模式
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
设计模式C#描述——抽象工厂模式



阅读此文应先阅读简单工厂模式与工厂方法模式

抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。

假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产品等级结构。那么为了将消费这些产品对象的责任和创建这些产品对象的责任分开,可以引进抽象工厂模式。这样的话,消费产品的客户不需要直接参与产品的创建工作,而只需要向一个公用的工厂接口请求所需要的产品。

采用抽象工厂模式设计出的系统类图如下。




从上图可以看到,抽象工厂模式设计到以下的角色:

抽象工厂角色:担任这个角色的是工厂方法模式的核心,它是与应用系统的商业逻辑无关的。通常使用接口或抽象类实现。

具体工厂角色:这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关的。通常使用具体的类实现。

抽象产品角色:担任这个角色的类是抽象工厂方法模式所创建的对象的父类,或它们共同拥有的接口。通常使用接口或抽象类实现这一角色。

具体产品角色:抽象工厂模式所创建的任何产品对象都是某一具体产品类的实例。这是客户端最终需要的东西。通常使用具体类实现这个角色。

下面给出这个系统的原代码:



Creator:

public interface Creator

{

ProductA factoryA();

ProductB factoryB();

}



ConcreteCreator1:

public class ConcreteCreator1:Creator

{

public ProductA factoryA()

{

return new ProductA1();

}

public ProductB factoryB()

{

return new ProductB1();

}

}



ConcreteCreator2:

public class ConcreteCreator2:Creator

{

public ProductA factoryA()

{

return new ProductA2();

}

public ProductB factoryB()

{

return new ProductB2();

}

}



ProductA:

public interface ProductA

{

}



ProductA1:

public class ProductA1:ProductA

{

public ProductA1()

{

}

}



ProductA2:

public class ProductA2:ProductA

{

public ProductA2()

{

}

}



ProductB:

public interface ProductB

{

}



ProductB1:

public class ProductB1:ProductB

{

public ProductB1()

{

}

}



ProductB2:

public class ProductB2:ProductB

{

public ProductB2()

{

}

}

在以下情况下应该使用抽象工厂模式:

一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。

这个系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。

同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中体现出来。

系统提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于实现。


来源:upschool.com.cn
作者:
关键字:设计模式C
发表日期:2005-12-23

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:设计模式C#描述之——简单工厂模式   下一篇:设计模式C#描述——单例与多例模式


2008-12-4 5:23:21
本文的相类似文章
  • 好东西 好东西 设计模式C#实现代码
  • 设计模式c#语言描述——适配器模式
  • 设计模式c#语言描述——建造者模式
  • 设计模式c#语言描述——合成(Composite)模式
  • 设计模式c#描述——装饰(Decorator)模
  • 设计模式C#描述——单例与多例模式
  • 设计模式C#描述之——简单工厂模式
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com