【设计模式】【创建型】抽象工厂模式

举报
huahua.Dr 发表于 2021/06/10 18:46:22 2021/06/10
【摘要】 一、抽象工厂模式抽象工厂模式对工厂方法进一步抽象;原来的工厂方法模式中一个工厂类负责创建一个产品实例,存在很多产品的时候需要创建很多工厂类,增加类复杂度,不方便维护;抽象工厂方法对产品进行抽象:同一类的产品由一个工厂负责创建产品实例,组成一个产品族;产品也分不同的等级结构,产品族可以通过组合的方式创建不同等级的产品实例。特点:1.客户端client只需要了解抽象工厂AbstractFacto...

一、抽象工厂模式

抽象工厂模式对工厂方法进一步抽象;原来的工厂方法模式中一个工厂类负责创建一个产品实例,存在很多产品的时候需要创建很多工厂类,增加类复杂度,不方便维护;抽象工厂方法对产品进行抽象:同一类的产品由一个工厂负责创建产品实例,组成一个产品族;产品也分不同的等级结构,产品族可以通过组合的方式创建不同等级的产品实例。

特点:

1.客户端client只需要了解抽象工厂AbstractFactory包含有哪些产品等级以及具有哪些产品族可直接使用。无需知道复杂的创建过程,达到了创建与实现的解耦。

2.新增产品族很方便,无需修改原来的代码,符合开闭原则

3.一个产品族可以创建不同的产品等级实例,达到了组合复用原则

缺点:

1.拓展产品等级比较麻烦,需要修改产品族代码,并且层次结构比较复杂

使用场景:

1.需要使用接口创建对象,但是又不确定具体实现。

2.产品等级结构数目稳定

3.生产关系复杂紧密

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。