当前位置: 首页 >  网技达人 >  抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式(Abstract Factory Pattern)

导读:抽象工厂模式.回顾工厂方法设计模式的不足:具体产品增加时,系统中类的个数将成对增加,在一定程度上增加了系统的复杂度.一、模式动机.产品等级结构:产品等级结构即产品的继承结构,即抽象产品与具体产品.产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组

抽象工厂模式

回顾工厂方法设计模式的不足:具体产品增加时,系统中类的个数将成对增加,在一定程度上增加了系统的复杂度

一、模式动机

  • 产品等级结构:产品等级结构即产品的继承结构,即抽象产品与具体产品
  • 产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品

二、模式定义

提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类 。抽象工厂模式又称为Kit模式,属于对象创建型模式。

三、模式结构

四、案例实现

案例背景

电视机、空调工厂,不同品牌的电视和空调

案例结构

代码实现

五、模式分析

将产品按照产品等级结构划分,将工厂按照产品族划分

六、总结

模式优点

  • 隔离了具体类的生成,使得客户端并不需要知道什么被创建
  • 当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象
  • 增加新的产品族很方便,无须修改已有系统,符合开闭原则

模式缺点

  • 增加新的产品等级结构麻烦,需要对原有系统进行较大的修改,甚至需要修改抽象层代码,这显然会带来较大的不便,违背了开闭原则

模式应用情形

  • 一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节
  • 系统中有多于一个的产品族,但每次只使用其中某一产品族
  • 属于同一个产品族的产品将在一起使用,这一约束必须在系统的设计中体现出来
  • 产品等级结构稳定,在设计完成之后不会向系统中增加新的产品等级结构或者删除已有的产品等级结构
内容
  • RocketMQ消费者是如何负载均衡的
    RocketMQ消费者是如何负载
    2023-12-09
    摘要:RocketMQ 支持两种消息模式:集群消费( Clustering )和广播消费( Broadcasting )
  • 聚焦Web前端安全:最新揭秘漏洞防御方法
    聚焦Web前端安全:最新揭秘漏洞
    2023-12-08
    在 Web.安全中,服务端一直扮演着十分重要的角色。然而前端的问题也不容小觑,它也会导致信息泄露等诸如此类的问题。在这篇
  • FlashDuty Changelog 2023-09-07 | 新增深色模式与主题配置
    FlashDuty Change
    2023-12-04
    FlashDuty:一站式告警响应平台,前往此地址免费体验!.FlashDuty.现在已经全面支持了深色模式,这为您提供
  • ***性能优化和调整服务
    ***性能优化和调整服务
    2023-10-02
    ***性能优化和调整服务.***性能优化和调整服务是指针对服务器的硬件和软件进行调整和优化,以提高其运行效率和稳定性的服
  • 虚拟现实技术开发
    虚拟现实技术开发
    2023-10-02
    虚拟现实技术开发.虚拟现实技术已经成为了当今科技行业的热门话题,它的发展日益迅猛,给人们的生活和工作带来了巨大的变革。在
  • 高性能电子元件**
    高性能电子元件**
    2023-10-02
    高性能电子元件**.随着科技的不断进步,电子行业的发展日新月异。高性能电子元件作为电子产品的关键组成部分,对于产品的性能
  • 云服务器托管服务
    云服务器托管服务
    2023-10-02
    云服务器托管服务.什么是云服务器托管服务.云服务器托管服务是指将企业或个人的***设备放置在专业的数据中心中,由专业的运
  • ***虚拟化技术咨询服务
    ***虚拟化技术咨询服务
    2023-10-02
    ***虚拟化技术咨询服务.在当今数字化时代,***虚拟化技术越来越受到企业和个人用户的青睐。虚拟化技术通过将物理***划
  • 全球电子元件市场趋势分析
    全球电子元件市场趋势分析
    2023-10-02
    全球电子元件市场趋势分析.近年来,全球电子元件市场呈现出不断增长的趋势。随着科技的不断发展和智能设备的普及,电子元件市场
  • 移动应用程序开发
    移动应用程序开发
    2023-10-02
    移动应用程序开发.移动应用程序开发是指开发适用于**和平板电脑的应用程序。随着移动设备的普及和移动互联网的快速发展,移动
  • 人工智能客服系*
    人工智能客服系*
    2023-10-02
    人工智能客服系*.随着科技的不断发展,人工智能技术已经渗透到我们生活的方方面面,其中之一就是人工智能客服系*。这种**利
  • ***集群架构规划与设计
    ***集群架构规划与设计
    2023-10-02
    ***集群架构规划与设计.概述.随着互联网和大数据技术的快速发展,企业对***的性能和稳定性要求越来越高。为了满足这些需
  • 互联网金融服务平台
    互联网金融服务平台
    2023-10-02
    互联网金融服务平台.互联网金融服务平台是指利用互联网技术提供金融服务的平台,它的出现极大地改变了传统金融行业的运营模式,