07-抽象工厂

news/2024/11/7 18:12:27/

意图

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

适用性

在以下的情况可以选择使用抽象工厂模式:

  • 一个系统要独立于它的产品的创建、组合和表示。
  • 一个系统要由多个产品系列中的一个来配置。
  • 要强调一系列相关的产品对象的设计以便进行联合使用。
  • 提供一个产品类库,但只想显示它们的接口而不是实现。

类图

在这里插入图片描述

示例

在这里插入图片描述
以上示例是Copy自GOF的《设计模式》,开始读时感觉晦涩难懂,不要太在意Motif和Presentation Manager到底是什么,研读两遍就能理解其核心表达的内容

注:以上内容全部摘抄自GOF的《设计模式》一书


http://www.ppmy.cn/news/1272261.html

相关文章

开机0xc000000e修复方式,电脑出现错误代码0xc000000e

0xc000000e是Windows操作系统中的一个常见错误代码。错误代码0xc000000e表示操作系统无法找到正确的启动设备或引导记录损坏,导致电脑无法正常启动。今天的这篇文章将和大家分享一些关于开机0xc000000e修复的方法。 一.电脑出现开机0xc000000e的原因 开机出现0xc00…

详细了解stm32---按键

提示:永远支持知识文档免费开源,喜欢的朋友们,点个关注吧!蟹蟹! 目录 一、了解按键 二、stm32f103按键分析 三、按键应用 一、了解按键 同学们,又见面了o(* ̄▽ ̄*)ブ,最…

阿里云对象存储OSS外网流出流量异常增多导致费用上升的解决方法

本文介绍在使用阿里云的对象存储 OSS服务过程中,外网流量消耗异常增多并导致异常的费用支出这一情况的问题发现、问题定位与几种不同的问题解决方法。 细细数来,写博客已经有近3的历史了,这成为了一项已经陪伴我大半人生的工作;也…

uniapp常用api讲解

Uniapp是一个基于Vue.js的跨平台开发框架,可以同时开发微信小程序、H5、App等多个平台的应用。下面是Uniapp常用的API讲解: Vue.js的API Uniapp采用了Vue.js框架,因此可以直接使用Vue.js的API。例如:v-show、v-if、v-for、compu…

贝蒂详解<string.h>哦~(用法与实现)

目录 引言: (一)字符函数和字符串函数 1.简介 2.strlen()函数 2.1用法 2.2实例 2.3 实现strlen() (1)计数法 (2)递归法 (3) 指针-指针 2.4sizeof和strlen()的区别 3.s…

CentOS新系统工具安装

时区设置 ## 查看当前时区 timedatectl | grep "Time zone" ## 查看时区列表 thiimedatectl list-timezones ## 设置时区 sudo timedatectl set-timezone Asia/ShanghaiCentOS7桌面怎么校准时间?(设置时区) 安装Docker 环境 # …

固态硬盘缓存和不缓存的区别

简单来说,带缓存的SSD固态硬盘性能更高,但由于断电后缓存上数据易丢失,而不带缓存的固态则是直接写入硬盘,安全性更高,两者在价格上区别较小,但带缓存的价格一般会高于不缓存的硬盘。 固态硬盘&#xff08…

Unity_使用FairyGUI搭建登录页面

Unity_使用FairyGUI搭建登录页面 1. 使用FairyGUI准备一个UI界面,例如:以下登录 2. 发布导出(发布路径设置为Unity的Asset下任何路径) 3. Unity编辑器安装FairyGUI包资源(在资源商店找见并存储为我的资源,…