《设计模式》学习笔记——ABSTRACT FACTORY 抽

系统 1913 0

1.1 ABSTRACT FACTORY 抽象工厂

1、 意图

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

2、 动机

“客户仅与抽象定义的接口交互,而不使用特定的具体类的接口。”

这里的主要的思想是封装对象的创建的过程。客户端可以不需要知道具体要创建那些对象,而只需要知道创建某一系列的对象所用到的“工厂对象”即可。

3、 适用性

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

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

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

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

4、 结构

wps_clip_image-278

5、 参与者

AbstractFactory:创建一系列对象的抽象类。

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

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

ConcreteProduct:定义一个被相应的具体工厂创建的对象;实现AbstractProduct接口。

Client:仅使用AbstractFactory和AbstractProduct类声明的接口。

6、 协作

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

AbstractFactory将具体对象的创建延迟到它的子类ConcreteFactory中。

7、 效果

1) 它分离了具体的类:一个工厂封装创建产品的责任和过程,它将客户和类的实现分离。客户通过抽象接口操作实例。产品的类名也在具体工厂实现中分离,他们不出现在客户代码中。

2) 它使得易于交互产品系列。

3) 它有利于产品的一致性。

4) 难于支持新的种类。

《设计模式》学习笔记——ABSTRACT FACTORY 抽象工厂


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论