2.Abstract Factory(抽象工厂模式、工具箱kit)

Abstract Factory(抽象工厂模式、工具箱kit)

     是所有形态的工厂模式中最为抽象和最具一般性的一种形态,通过抽象工厂提供的接口,客户端不必指定产品的具体类型就能创建多个产品足(product families)中的产品对象。

 

适用情况:

1.一个系统必须与他的产品类如何构建、组合及表现无关。

2.一个系统必须与各个产品族中的一个族关联。

3.同意产品族的相关产品是共同使用的,这个是重要限制必须在系统设计中体现出来。

4.你提供一个产品类的库,只想让显示他们的接口而不是实现,从而使客户端不依赖于实现。

 

结构:

1.抽象工厂(CAbstractFactory):声明构建(生产)抽象工厂产品操作的接口。

2.具体工厂(CConcreteFactory):实现构建(生产)抽象产品的操作。

3.抽象产品(CAbstractProduct):声明某一类型对象的接口。

4.具体产品(CConcreteProduct):相对于某一具体工厂定义欲构建的一个产品对象。并实现抽象产品的接口。

5.客户(CClient):使用抽象工厂及抽象产品声明的接口,构建并获得最终的产品对象。

 

     一般的具体工厂类的实例是在运行期被创建的。并由给具体工厂分别创建其负责的具体产品。如果要构建不同的产品对象,这必须使用不同的具体工厂。抽象工厂提供了生产产品的接口,但他并不亲自构建这些产品,而是委托其派生类的具体工厂去创建产品对象。

uml图:

暂时略。呵呵

代码模板:

暂时略。

posted on 2008-08-15 10:32  goldany  阅读(262)  评论(0)    收藏  举报