ios设计模式读书笔记----Abstract Factory(抽象工厂)

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

定义于《设计模式》

ios设计模式读书笔记----Abstract Factory(抽象工厂)_第1张图片


AbstractFactory

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

ConcreteFactory

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

AbstractProduct

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

ConcreteProduct

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

Client

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


协作

通常在运行时创建一个ConcreteFactory类的实例,这一具体的工厂创建具有特定实现的产品对象。为创建不同的产品对象,客户应使用不同的具体的工厂。

AbstractFactory将产品对象的创建推迟到它的ConcreteFactory子类。


意义

用一个具体工厂创建一组具有类似特性的产品。


与工厂方法的区别


                抽象工厂                                                       工厂方法

------------------------------------------------------------------------------------------------------------------------

通过对象组合创建抽象产品                          通过类继承创建抽象产品

------------------------------------------------------------------------------------------------------------------------

创建多系列产品                                            创建一种产品

------------------------------------------------------------------------------------------------------------------------

必须修改父类接口才能添加新产品              子类化创建者并重载工厂方法以创建新产品

------------------------------------------------------------------------------------------------------------------------

你可能感兴趣的:(ios设计模式读书笔记----Abstract Factory(抽象工厂))