在Java设计模式-工厂模式(2)工厂方法模式 我们知道了工厂方法模式解决了简单工厂模式中的缺陷,做到了满足开闭原则,但是时代是进步的,进而又产生新的问题,工厂难道只能生产一种东西吗。我们所见到的工厂大都都是综合性的。所以就有了抽象工厂模式。


放张图舒缓一下心情。

Java设计模式-工厂模式(3)抽象工厂模式

  • 一、前言
    • 1)概述:
    • 2)角色概述:
    • 3)前文
  • 二、代码实现
    • 1)抽象产品及具体产品:
    • 2)抽象工厂 及具体工厂
    • 3)测试
    • 4)优缺点:
    • 5)使用场景:
  • 三、自言自语

一、前言

1)概述:

  1. 抽象工厂模式(Abstract Factory Pattern)隶属于设计模式中的创建型模式,用于产品族的构建。抽象工厂是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂是指当有多个抽象角色时使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象。
  2. 工厂模式中的每一个形态都是针对一定问题的解决方案,工厂方法针对的是多个产品系列结构;而抽象工厂模式针对的是多个产品族结构,一个产品族内有多个产品系列。
  3. 抽象工厂模式相对于工厂方法模式来说,就是工厂方法模式是针对一个产品系列的,而抽象工厂模式是针对多个产品系列的,即工厂方法模式是一个产品系列一个工厂类,而抽象工厂模式是多个产品系列一个工厂类
  4. 如果客户端需要创建一些产品结构,而这些产品结构又分别属于不同的产品类别,则可以使用抽象工厂模式,抽象工厂模式中抽象工厂类负责定义创建对象的接口,具体这一系列对象的创建工作由实现抽象工厂的具体工厂类来完成。

2)角色概述:

抽象工厂模式中存在四种角色,分别是抽象工厂角色,具体工厂角色,抽象产品角色,具体产品角色。

  • 抽象工厂:提供了创建产品的接口,它包含多个创建产品的方法,可以创建多个不同等级的产品。
  • 具体工厂:主要是实现抽象工厂中的多个抽象方法,完成具体产品的创建。
  • 抽象产品:定义了产品的规范,描述了产品的主要特性和功能,抽象工厂模式有多个抽象产品。
  • 具体产品:实现了抽象产品角色所定义的接口,由具体工厂来创建,它 同具体工厂之间是多对一的关系。

3)前文

在这里再次上一篇文章中

Java设计模式-工厂模式(3)抽象工厂模式相关推荐

  1. 【Java设计模式】简单学抽象工厂模式——你好,微信还是支付宝

    目录 说明 实现方式 自问自答 其他链接 说明 五大创建型模式之一,其他还有单例模式.原型模式.建造者模式.工厂模式. 抽象工厂模式(Abstract Factory Pattern):定义了一个in ...

  2. Java 设计模式之 Abstract Factory 抽象工厂模式

    在工厂方法基础上,将工厂的生产方法的返回类型从具体产品抽象为抽象产品,同时扩展工厂的方法,支持任意定制产品族,则工厂方法可以升级为抽象工厂模式,比如一家餐厅可以提供牛排(方法A),红酒(方法B),蔬菜 ...

  3. 【java设计模式系列】3. 抽象工厂模式(Abstract Factory)

    假设现在有一个车辆制造工厂,它生产两种车,A类车和B类车,每类车有其各自的车门和轮子,这就需要不同的车间来做,A类车的车间有生产车门的工作,有生产轮子的工作,B类车的车间有生产车门的工作,有生产轮子的 ...

  4. Java设计模式(二)简单工厂模式—设计模式六大原则

    文章目录 设计模式六大原则 1. 开闭原则 2. 里氏代换原则 3. 依赖倒转原则 4. 接口隔离原则 5. 迪米特法则(最少知道原则) 6. 合成复用原则 工厂设计模式 什么是工厂模式 工厂模式的好 ...

  5. Java设计模式(十二) 策略模式

    策略模式介绍 策略模式定义 策略模式(Strategy Pattern),将各种算法封装到具体的类中,作为一个抽象策略类的子类,使得它们可以互换.客户端可以自行决定使用哪种算法. 策略模式类图 策略模 ...

  6. Java设计模式(工厂模式>抽象工厂模式和原型模式)

    Java设计模式Ⅱ 1.工厂模式 1.1 简单工厂模式 1.2 工厂方法模式 2.抽象工厂模式 3.总结 4.原型模式 4.1 原型模式 4.2 浅拷贝 4.3 深拷贝 5.建造者模式 1.工厂模式 ...

  7. Java设计模式之工厂方法模式与抽象工厂模式

    2019独角兽企业重金招聘Python工程师标准>>> 一.前期回顾 上一篇<Java设计模式之单例模式>详细介绍了单例模式,介绍了单例模式的使用场景,优缺点,同时也写了 ...

  8. java工厂模式和抽象工厂_Java中的抽象工厂设计模式

    java工厂模式和抽象工厂 Welcome to Abstract Factory Design Pattern in java example. Abstract Factory design pa ...

  9. JAVA设计模式——工厂模式【简单工厂模式、工厂方法模式、抽象工厂模式】

    目录 简单工厂模式 传统方式 简单工厂模式 静态工厂模式 工厂方法模式 抽象工厂模式 工厂模式JDK-Calendar源码分析 工厂模式小结 简单工厂模式   看一个具体的需求 看一个披萨的项目:要便 ...

  10. Java设计模式-工厂方法模式和抽象工厂模式

    工厂方法模式定义: 即定义一个创建对象的接口(即抽象工厂类),让其子类(具体工厂类)决定实例化哪一个类(具体产品类)."一对一"的关系 1,一抽象工厂类派生出多个具体工厂类: 2, ...

最新文章

  1. PC/UVA 110207/10258
  2. 苹果汽车高管几乎流失殆尽,一年损失7人,新年又有人被Meta挖走
  3. activiti 5.15.1 动态手动通过java编码方式,实现创建用户任务,动态指定个人,用户组,角色,指定监听的实现...
  4. 了解 Apache ActiveMQ
  5. redis 安装并设置为开机启动服务
  6. 页面无法访问 css文件加载问题
  7. XManager 远程访问 Ubuntu16.04 图形界面
  8. DOCTYPE用法详解
  9. c语言空字符和 0 的区别,C语言'\0'、'0'、' '、“0”、0的区别详解
  10. ccna考试之导入题库———pdf转vce格式转换
  11. DOS的net命令详解
  12. 【HTML】使用Vscode快速书写HTML
  13. 大卫 异星觉醒 机器人_吓坏无数人的《异星觉醒》,怎么最后还招恨了?
  14. 期末前端web大作业——动漫客栈响应式bootstarp(7页) 排版整洁,内容丰富,主题鲜明
  15. 毕业设计——基于WEB的BBS论坛
  16. 应届生求职经历-一路坎坷
  17. C语言二分查找(指针)
  18. spark和zeppelin实践二:安装spark和zeppelin
  19. 分辨率适配-ipad
  20. Summernote使用入门

热门文章

  1. SAP固定资产期初导入检查
  2. 企业管理软件能带来什么
  3. SAP实施后你的关键用户还关键吗?
  4. ABAP 直接上传图片的函数
  5. ABAP设置输入焦点和表格控件行数的注意事项
  6. linux下apk包名查看,使用adb命令查看apk版本
  7. pydroid3怎么保存_pydroid3
  8. php 发送会议邮件,php – 为什么Outlook想删除以编程方式发送的当前会议邀请?...
  9. Mysql基础--常见的表的约束介绍(一)
  10. 网络安全比赛理论答题(六)