您的位置:首页 > 其它

设计模式总结之Abstruct Factory Pattern(抽象工厂模式)

2016-08-11 00:46 441 查看

目录

设计模式分类

创建型设计模式:
Singleton Pattern(单例模式)   

Prototype Pattern(原型模式)
Factory Method Pattern(工厂方法模式)   

Abstract Factory Pattern(抽象工厂模式)
Builder Pattern(建造者模式)
结构型设计模式:
Adapter Pattern(适配器模式)   

Bridge Pattern(桥接模式)
Composite Pattern(组合模式)
Decorator Pattern(装饰者模式)
Façade Pattern(外观模式)
Flyweight Pattern(享元模式)
Proxy Pattern(代理模式)   

行为型设计模式:
Chain of Responsibility Pattern(职责链模式)
Command Pattern(命令模式)
Interpreter Pattern(解释器模式)   

Iterator Pattern(迭代器模式)
Mediator Pattern(中介者模式)
Memento Pattern(备忘录模式)
Observer Pattern(观察者模式)
State Pattern(状态模式)
Strategy Pattern(策略模式)
Template Method Pattern(模板方法模式)
Visitor Pattern(访问者模式)

Abstruct Factory Pattern(抽象工厂模式)

意图

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

适用性

• 一个系统要独立于它的产品的创建、组合和表示时。

• 一个系统要由多个产品系列中的一个来配置时。

• 当你要强调一系列相关的产品对象的设计以便进行联合使用时。

• 当你提供一个产品类库,而只想显示它们的接口而不是实现时。

结构

 


参与者

• AbstractFactory (抽象工厂) 

— 声明一个创建抽象产品对象的操作接口。 

• ConcreteFactory (具体工厂) 


— 实现创建具体产品对象的操作。 


• AbstractProduct (抽象产品) 


— 为一类产品对象声明一个接口。 


• ConcreteProduct (具体产品) 


— 定义一个将被相应的具体工厂创建的产品对象。 


— 实现AbstractProduct接口。 

• Client(使用场景)


— 仅使用由AbstractFactory和AbstractProduct类声明的接口。


例子


 

三种工厂模式的区别

 工厂方法模式和抽象工厂模式的区别
简单工厂模式:

只有一个工厂类一个生产方法,根据参数不同生产不同的产品。

工厂方法模式:

每一个工厂类只负责一个产品生产,不生成其它产品。好比一条生产线只生产一个产品线。

抽象工厂模式:

每一个工厂类提供多个方法,可以生产不同的产品。好比多条生产线可以生产多家产品。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息