2.Abstract Factory(抽象工厂模式、工具箱kit)
Abstract Factory(抽象工厂模式、工具箱kit)
是所有形态的工厂模式中最为抽象和最具一般性的一种形态,通过抽象工厂提供的接口,客户端不必指定产品的具体类型就能创建多个产品足(product families)中的产品对象。
适用情况:
1.一个系统必须与他的产品类如何构建、组合及表现无关。
2.一个系统必须与各个产品族中的一个族关联。
3.同意产品族的相关产品是共同使用的,这个是重要限制必须在系统设计中体现出来。
4.你提供一个产品类的库,只想让显示他们的接口而不是实现,从而使客户端不依赖于实现。
结构:
1.抽象工厂(CAbstractFactory):声明构建(生产)抽象工厂产品操作的接口。
2.具体工厂(CConcreteFactory):实现构建(生产)抽象产品的操作。
3.抽象产品(CAbstractProduct):声明某一类型对象的接口。
4.具体产品(CConcreteProduct):相对于某一具体工厂定义欲构建的一个产品对象。并实现抽象产品的接口。
5.客户(CClient):使用抽象工厂及抽象产品声明的接口,构建并获得最终的产品对象。
一般的具体工厂类的实例是在运行期被创建的。并由给具体工厂分别创建其负责的具体产品。如果要构建不同的产品对象,这必须使用不同的具体工厂。抽象工厂提供了生产产品的接口,但他并不亲自构建这些产品,而是委托其派生类的具体工厂去创建产品对象。
uml图:
暂时略。呵呵
代码模板:
暂时略。
浙公网安备 33010602011771号