Gartner发布软件供应链安全市场指南:软件供应链安全工具的8个强制功能、9个通用功能及全球29家供应商

攻击者的目标是由开源和商业软件依赖项、第三方 API 和 DevOps 工具链组成的软件供应链。软件工程领导者可以使用软件供应链安全工具来保护他们的软件免受这些攻击的连锁影响。

主要发现

  • 越来越多的软件工程团队现在负责解决软件供应链安全 (SSCS) 需求。

  • 软件工件、开发人员身份、开发工具和交付管道之间相互依赖的碎片化网络造成了软件供应链中的可见性差距。

  • 不正确的工件完整性验证允许攻击者毒害软件交付管道并危害正在交付的软件。

  • 缺乏自动化工具来执行安全策略和检测错误配置,削弱了软件交付过程的安全态势。

建议

负责保护软件供应链安全的软件工程领导者应该:

  • 根据 SSCS 工具在整个软件开发生命周期 (SDLC) 中满足三个关键用例的能力(提高可见性、保护完整性和增强安全态势)对其进行评估。

  • 通过使用 SSCS 工具通过软件成分分析和软件物料清单 (SBOM) 以及 SDLC 中所有管道活动和交互的审计跟踪来管理第三方风险,从而减少软件供应链中的可见性差距。

  • 通过签署和验证构建工件,确保来源数据到位并防止使用不合规的工件,在整个软件交付过程中保护软件的完整性。

  • 通过使用 SSCS 工具自动执行 SDLC 中的策略以及检测和解决 DevOps 工具中的配置错误,改善软件交付过程的安全态势。

战略规划假设

到 2028 年,大型企业中 85% 的软件工程团队将部署软件供应链安全工具,而 2025 年这一比例为 60%。

市场定义

Gartner 将软件供应链安全 (SSCS) 工具定义为那些通过在开发和交付过程中防止受到攻击来构建安全软件的工具。这些保护措施扩展到源代码、开发人员身份、开发工具、交付管道和部署后补丁。SSCS 工具通过基于策略的依赖项管理、软件组合分析 (SCA) 和软件物料清单 (SBOM) 检查来降低第三方风险。它们在通过开发和交付管道时通过签名和验证来确保工件的出处和可追溯性。SSCS 工具支持 SaaS 和混合部署模型,并补充 DevOps 平台以提高组织的 DevSecOps 成熟度。

软件供应链超越组织边界,由外部实体和内部系统组成。内部系统包括软件交付管道、软件依赖项和软件开发环境。外部实体包括合作伙伴、开源软件 (OSS) 和供应商。组织对内部系统有更大的控制权,而对外部实体几乎没有控制权。SSCS 工具可保护组织免受内部威胁和受感染的外部实体的侵害。

软件工程团队还可以使用这些工具,通过自动执行安全和合规政策以及自动认证来满足监管和政府要求。政府认识到软件是当今最关键的基础设施。因此,如果对软件的开发方、开发方式和组成部分缺乏了解,不仅会对企业构成危险,还会对整个社会构成危险。

SSCS 工具可帮助组织实现以下切实成果:

  • 识别并减轻因广泛使用开源软件而产生的安全和合规风险。

  • 减少由于对用于软件开发、交付和运行时的工具、环境、管道和基础设施的攻击而导致的开发人员摩擦和生产力损失。

  • 保护组织免受上游软件依赖项的攻击以及下游软件用户的受损产品的攻击。

  • 保护组织的知识产权,这些知识产权越来越多地存在于软件中。

  • 通过使软件交付基础设施可审计以及自动执行应用程序安全策略来满足治理和监管要求。

强制功能

该市场的强制性特征包括:

开发

  • 使用SCA识别已知漏洞、软件许可证和运营风险(例如嵌入式 OSS 的可行性、可信度和可维护性),从而降低第三方风险。

  • 通过扫描内部开发的代码中的秘密和潜在的安全漏洞来降低第一方风险。

  • 支持生成、管理和处理软件开发过程中生成和使用的工件的 SBOM。

交付管道

  • 通过签署和验证构建工件、源代码提交和可部署二进制文件来保护持续集成/持续交付(CI/CD )管道中的软件完整性。

  • 提供准确、完整的开发工具、开发人员身份和软件工件清单,以全面了解从开发到交付的路径。

  • 通过检测和修复 DevOps 工具(例如源代码存储库和工件注册表)中的错误配置以及启用或防止使用不合规的工件,自动化策略实施以增强交付管道的安全态势。

部署后

  • 启用受影响模块和组件的追溯能力以返回其原始来源。

  • 监控部署后暴露的新风险和漏洞,并提供活动审计跟踪以检测和从供应链攻击中恢复。

通用功能

该市场的通用功能包括:

  • 通过应用安全策略和许可证过滤器来支持开源组件的管理,确保仅使用经过批准和审查的开源组件。

  • 支持生成机器可读文档(例如 VEX、CSAF),以便有效披露漏洞并确定影响交付软件的常见漏洞和暴露(CVE)的优先级。

  • 支持可达性分析,通过识别应用程序是否依赖于易受攻击的代码片段和/或受影响的依赖项来分析和确定风险的优先级。

  • 扫描容器镜像来检测安全漏洞并识别违反政策的行为。

  • 支持二进制SCA ,无需访问源代码即可识别和扫描开源和专有组件(例如供应商工件)中的漏洞和/或恶意代码。生成的组件库存通过 SBOM 报告。

  • 支持 SBOM 生命周期管理功能,实现多个供应商和消费者通过公共交换点发现、访问和安全交换 SBOM。

  • 检测并防止人类和机器身份对 SDLC 工具和环境的未经授权的访问。

  • 支持提取威胁情报以告知依赖性扫描和使用政策。

  • 触发工作流以替换在构建和部署期间或之后被篡改或受漏洞影响的工件。此工作流可能涉及自动创建用户案例来跟踪升级,并进行相应的升级影响分析。

市场描述

现代软件应用程序很少完全从头开始构建;相反,它们依赖于第三方组件,包括商业和开源软件、API、库、插件和日益生成的 AI 模型。这些依赖关系共同构成了软件的“供应链”。SSCS 涉及减轻与此依赖链相关的风险。

软件供应链还包括用于开发、交付和运营软件的自动化工具、开发环境、开发人员身份和交付管道。这些实体及其交互和关系都带来了另一种风险。请注意,交付管道是臭名昭著的针对tj-actions 、SolarWinds和Ultralytics 的软件供应链攻击中的攻击媒介。   

为了确保供应链安全,软件工程团队必须了解 SDLC 管道、存储库和工件,保护其完整性并改善应用程序安全态势。SSCS 工具可帮助软件工程团队实现这些成果(见图1 )。

图 1:软件供应链安全工具功能

SSCS 并非新兴需求,因为自从开发人员不再依赖自己的源代码和工具以来,软件供应链就一直存在。组织通常使用一组不同的工具和实践来减轻相关风险,例如软件成分分析、应用程序安全测试 (SAST/DAST) 和应用程序安全态势管理。然而,一些问题仍然很大程度上未得到解决,需要专门的能力。例如:

  • 软件完整性——确保组件与其声明相符且未被篡改。

  • 出处——确定软件组件的来源。

  • 可见性——提供 SDLC 中的资产清单和访问权限的全面视图。

  • 可追溯性——在产品流向生产过程时对其进行识别、追踪和追溯。

SSCS 工具通过统一的界面将这些功能整合在一起,该界面与用于软件开发和交付的 DevOps 工具集成。参见图 2,了解 SSCS 工具功能如何满足开发、交付和部署后场景中的安全需求。

图 2:SSCS 工具在开发、交付和部署后保护软件的功能

确保软件交付管道的安全是确保交付软件安全的先决条件。

市场方向

大多数软件工程领导者将应用程序安全技能评为“高度重要”。在 2025 年 Gartner 软件工程调查中,近三分之二的受访者认为应用程序安全对于交付满足业务需求的软件非常重要(见图3 )。1这对 SSCS 工具来说是个好兆头,因为它们解决了应用程序安全中的一个关键挑战——保护软件供应链。

图 3:大多数软件工程领导者认为应用程序安全技能非常重要

软件供应链的日益复杂以及由此产生的组织与其技术生态系统之间的相互依赖关系也将扩大和加速对 SSCS 工具的需求。根据世界经济论坛的《2025 年全球网络安全展望报告》,软件供应链漏洞正成为生态系统中最大的网络风险。当被问及“复杂性的哪个方面给您的组织带来最大的挑战或担忧”时,复杂供应链相互依赖关系中的漏洞成为最大的挑战。 

竞争态势、购买者行为和影响市场的外部力量

  • 市场细分之间的重叠度不断增加:建立软件供应链的信任需要整个 SDLC 的可见性、完整性和态势管理。这会导致与相邻市场(如应用程序安全态势管理 (ASPM)、应用程序安全测试和云原生应用程序保护平台 (CNAPP))重叠。

  • 增加内部采购:由于数字产品为组织提供了竞争优势,组织正在将部分软件开发外包。这不可避免地需要投资于 DevOps 相关工具,以及确保完整 SDLC 的工具。软件工程团队将寻求了解其软件供应链并监督其供应商和开源软件的安全级别。

  • 分担安全责任:向 CISO 报告的应用程序安全团队传统上是应用程序安全所有方面(包括SSCS)的唯一托管人。近年来,这种情况发生了变化,软件工程团队和平台工程团队与App S ec 团队共同承担应用程序安全的责任。因此,SSCS 工具承担双重责任,成为跨用户角色的共享事实来源,同时为每个用户角色提供量身定制的功能。

  • 国家支持的攻击:许多开源软件很容易受到国家恶意行为者的渗透。因此针对全球各个行业国家支持的软件供应链攻击变得越来越复杂和普遍。这些攻击要么利用了软件本身的漏洞(如Kaseya的情况),要么破坏了 SDLC(如SolarWinds和NotPetya攻击的情况)。SSCS 工具对于降低这些风险至关重要。 

  • 开放式 AI 模型的使用:开放式大型语言模型 (LLM) 易于访问且将其集成到应用程序中的门槛较低,这为软件供应链风险增加了新的维度。2025年 Gartner 软件工程调查显示,47% 的受访者将 LLM 集成到现有应用程序中。买家将期望SSCS工具能够发现 LLM 的使用情况、扫描模型中的风险并实施政策以防止使用未经批准的 LLM。风险示例包括模型来源薄弱、不受支持的模型以及阻碍模型使用的地缘政治障碍。Gartner预测,到 2025 年,对软件供应链和基础设施技术堆栈的毒害将占企业使用的 AI 恶意攻击的 70% 以上。开源模型和数据科学软件(如Jupyter Notebook或Python库)是新的 AI 攻击媒介。因此,更多的人工智能模型市场将包括对下载的第三方和开源模型的安全模型扫描。

  • 合规和政府授权:世界各地的政府、政策制定者和监管机构都在强制要求进行第三方供应商评估、持续漏洞扫描和 SBOM,以构建可信的软件供应链。强制性法规的例子包括美国政府网络安全行政命令 14144 、欧盟网络弹性法案、欧盟 NIS2 指令和联邦食品、药品和化妆品法案 (FD&C 法案) 。     

SSCS 监管合规工具

组织将使用 SSCS 工具作为主要机制,以确保安全软件开发实践符合法规要求。涉及 SBOM(由 VEX 丰富)和 SLSA 证明的 SSCS 功能使卖方和买方都能遵守政府和法规要求。

市场分析

根据Gartner 2025 年大型企业技术采用路线图调查,60% 的软件工程领导者表示他们已经部署或正在部署 SSCS,另有 12% 正在试用,13% 处于规划阶段。我们的调查显示,与强化 DevOps 管道相比,部署 SSCS 的组织更有可能从代码扫描、机密扫描、软件成分分析和 SBOM 管理开始。

通过工件完整性验证和自动策略实施来强化 DevOps 管道的功能的采用率相对较低。这是因为开发人员在持续集成/持续交付 ( CI/CD ) 管道中与签名和验证工作流相关的经验一直很差。DevOps 管道中工具的异构性加剧了创建工件证明和确保管道完整性的挑战。

市场规模和细分

Gartner 估计 SSCS 工具的市场规模约为 12 亿美元。该市场由几家知名的软件组合分析、DevOps 平台和云原生应用程序保护平台提供商代表,这些提供商提供捆绑功能以及大量一流的 SSCS 专业提供商。

SSCS 工具市场可以根据其专业功能进行细分:

  • 确保开源软件(OSS)的使用安全

  • 解决 CI/CD 安全风险

确保开源软件的使用安全

目前,OSS 占所有软件包的 70% 到 90% 。然而,只有 15% 的组织对其 OSS 管理实践非常有信心;大多数组织都有顾虑。因此,一部分提供商专门致力于确保安全使用开源软件包和第三方依赖项。这些功能包括:  

  • 用于识别漏洞和进步的基本软件成分分析,例如可达性分析、升级影响分析和二进制分析(无需访问源代码)。

  • 支持策略驱动的软件包管理,以确保开发人员只使用经过批准和审查的开源组件。

  • SBOM 可以深入了解其软件的组件和依赖关系。此功能与 SCA 和 ASPM 相结合,可通过识别软件供应链中的漏洞来更好地进行风险管理。

我们看到三种市场力量推动着这些功能的快速采用:

  • 越来越依赖开源软件需要在工具和技术上进行相应的投资以管理和确保其使用。

  • 加速采用开源组件、工具和编程语言(例如Python ),这在很大程度上受到生成式 AI 用例的推动。

  • 强制使用 SBOM 的监管和合规要求。

解决 CI/CD 安全风险

第二部分 SSCS 工具提供商专门确保软件组件的来源和完整性。这一直是应用程序安全领域的一个长期安全漏洞,需要通过签名提交、工件证明和配置漂移检测等技术来强化 CI/CD 管道。

多个开源基金会和政府机构已发布指南和框架来弥补这一 CI/CD 安全漏洞。这部分提供商专门实施这些指南和框架,而不会引入开发摩擦。软件工程领导者可以使用这些参考资料作为方便的清单来评估 SSCS 工具功能并验证供应商的声明:

  • OWASP 十大 CI-CD 安全风险,十大OWASP 基金会项目

  • 软件工件的供应链级别,或 SLSA(“salsa”),是作为开放源代码安全基金会的一部分发起的一项合作努力。

  • DevSecOps CI/CD 管道中软件供应链安全的集成策略,NIST 特别出版物 800-204D。

  • 安全软件开发框架 (SSDF) 版本 1.1 ,NIST 特别出版物 800-218。

  • CIS 软件供应链安全指南、互联网安全中心指南。

  • 保护软件供应链 — 开发人员推荐实践指南、持久安全框架软件供应链工作小组。

代表供应商

Gartner 估计,市场上有大约 35 家供应商满足本指南中概述的四项关键能力中的三项。对于此处列出的 29 家供应商,Gartner 能够通过两个公开来源验证,这些供应商的当前产品已在市场上销售至少一年,并且解决了 CI/CD 安全风险以及第三方依赖风险。代表性 SSCS 供应商包括具有以下特征的商业供应商组合:

1.    提供独立 SSCS 功能的供应商

2.    包含 SSCS 功能的 ASPM 供应商

3.    提供 SSCS 功能的 CNAPP 供应商

4.    添加了 SSCS 功能的 AST 和/或 SCA 供应商

5.    包含 SSCS 功能的 DevOps 平台

请参阅表 1-5 以获取代表性供应商及其产品、服务或解决方案的相应列表。

表1 :提供独立 SSCS 功能的代表性供应商

供应商

产品、服务或解决方案名称

ActiveState

ActiveState

BlueFlag Security

BlueFlag Security

 Endor   Labs

Endor Labs 软件供应链安全平台

Lineaje

Lineaje SBOM360

ReversingLabs

Spectra Assure

Xygeni Security

Xygeni CI/CD 安全

来源:Gartner(2025 年 4 月)

表2 :具有 SSCS 功能的代表性 ASPM 供应商

供应商

产品、服务或解决方案名称

 Apiiro

Apiiro

 Arnica

Arnica

BoostSecurity

BoostSecurity

 Cycode

Cycode

Jit

Jit ASPM 平台

Legit Security

Legit Security

OpsMx

OpsMx Delivery Shield

OX Security

OX 软件供应链安全

Scribe

Scribe

来源:Gartner(2025 年 4 月)

表3 :提供 SSCS 功能的代表性 CNAPP 供应商

供应商

产品、服务或解决方案名称

Aqua Security

Aqua Security

 Palo Alto

Prisma Cloud

Wiz

Wiz Code

来源:Gartner(2025 年 4 月)

表4 :具有附加 SSCS 功能的代表性 AST 和/或 SCA 供应商

供应商

产品、服务或解决方案名称

 Anchore

Anchore平台

FOSSA

FOSSA

Checkmarx

Checkmarx One

Snyk

Snyk

Sonatype

Sonatype

Veracode

Veracode

来源:Gartner(2025 年 4 月)

表5 :包含 SSCS 功能的代表性 DevOps 平台

供应商

产品、服务或解决方案名称

 GitHub

GitHub 高级安全

 GitLab

GitLab DevSecOps 平台

Harness

Harness供应链安全

JFrog

JFrog软件供应链平台

 Red Hat

Red Hat Trust 应用程序管道

来源:Gartner(2025 年 4 月)

市场建议

  • 通过使用 SSCS 工具来提高可见性、保护完整性并增强整个 SDLC 的安全态势,从而缩小信任差距。

  • 通过将 SSCS 功能集成到 DevOps 管道中以遵守行业认可的准则(例如 SSDF 和 SLSA),推进安全软件开发实践。与应用程序安全团队合作,定义组织的 SSCS 策略,并与平台工程团队合作,在内部 DevOps 工具链中创建安全默认值。

  • 通过选择能够与现有的 DevSecOps 工具集成并支持我们市场定义中概述的强制和可选功能的供应商来合理化工具。SSCS 工具供应商从不同的优势地位进入市场,包括 SCA、SBOM 和 SLSA 合规性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/75446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

备赛蓝桥杯-Python-考前突击

额,,离蓝桥杯开赛还有十个小时,最近因为考研复习节奏的问题,把蓝桥杯的优先级后置了,突然才想起来还有一个蓝桥杯呢。。 到目前为止python基本语法熟练了,再补充一些常用函数供明天考前再背背,算…

榕壹云外卖跑腿系统:基于Spring Boot+MySQL+UniApp的智慧生活服务平台

项目背景与需求分析 随着本地生活服务需求的爆发式增长,外卖、跑腿等即时配送服务成为现代都市的刚性需求。传统平台存在开发成本高、功能定制受限等问题,中小企业及创业团队极需一款轻量级、可快速部署且支持二次开发的外卖跑腿系统。榕壹云外卖跑腿系统…

使用Docker安装Gogs

1、拉取镜像 docker pull gogs/gogs 2、运行容器 # 创建/var/gogs目录 mkdir -p /var/gogs# 运行容器 # -d,后台运行 # -p,端口映射:(宿主机端口:容器端口)->(10022:22)和(10880:3000) # -v,数据卷映射:(宿主机目…

【antd + vue】Modal 对话框:修改弹窗标题样式、Modal.confirm自定义使用

一、标题样式 1、目标样式:修改弹窗标题样式 2、问题: 直接在对应css文件中修改样式不生效。 3、原因分析: 可能原因: 选择器权重不够,把在控制台找到的选择器直接复制下来,如果还不够就再加&#xff…

Streamlit在测试领域中的应用:构建自动化测试报告生成器

引言 Streamlit 在开发大模型AI测试工具方面具有显著的重要性,尤其是在简化开发流程、增强交互性以及促进快速迭代等方面。以下是几个关键点,说明了 Streamlit 对于构建大模型AI测试工具的重要性: 1. 快速原型设计和迭代 对于大模型AI测试…

docker 运行自定义化的服务-后端

docker 运行自定义化的服务-前端-CSDN博客 运行自定义化的后端服务 具体如下: ①打包后端项目,形成jar包 ②编写dockerfile文件,文件内容如下: # 使用官方 OpenJDK 镜像 FROM jdk8:1.8LABEL maintainer"ATB" version&…

解决java使用easyexcel填充模版后,高度不一致问题

自定义工具,可以通过获取上一行行高设置后面所以行的高度 package org.springblade.modules.api.utils;import com.alibaba.excel.write.handler.RowWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.wr…

repo仓库文件清理

1. repo 仓库内文件清理 # 清理所有Git仓库中的项目 repo forall -c git clean -dfx # 重置所有Git 仓库中的项目 repo forall -c git reset --hard 解释: repo forall -c git clean -dfx: repo forall 是一个用于在所有项目中执行命令的工具。-c 后…

结合大语言模型整理叙述并生成思维导图的思路

楔子 我比较喜欢长篇大论。这在代理律师界被视为一种禁忌。 我高中一年级的时候因为入学成绩好(所在县榜眼名次),直接被所在班的班主任任命为班长。我其实不喜欢这个岗位。因为老师一来就要提前注意到,要及时喊“起立”、英语课…

spark-core编程2

Key-Value类型: foldByKey 当分区内计算规则和分区间计算规则相同时,aggregateByKey 就可以简化为 foldByKey combineByKey 最通用的对 key-value 型 rdd 进行聚集操作的聚集函数(aggregation function)。类似于aggregate()&…

原理图设计准备:页面栅格模板应用设置

一、页面大小的设置 (1)单页原理图页面设置 首先,选中需要更改页面尺寸的那一页原理图,鼠标右键,选择“Schmatic Page Properties”选项,进行页面大小设置。 (2)对整个原理图页面设…

关于异步消息队列的详细解析,涵盖JMS模式对比、常用组件分析、Spring Boot集成示例及总结

以下是关于异步消息队列的详细解析,涵盖JMS模式对比、常用组件分析、Spring Boot集成示例及总结: 一、异步消息核心概念与JMS模式对比 1. 异步消息核心组件 组件作用生产者发送消息到消息代理(如RabbitMQ、Kafka)。消息代理中间…

【深度洞察】解码饮料行业破局点:场景革命

当东鹏特饮以 “大瓶装 防尘盖” 精准解决货车司机的场景化需求,当农夫山泉通过 “冷藏版东方树叶” 打开年轻白领的早餐场景 —— 这些现象级案例背后,是饮料行业底层逻辑的深刻变革:真正的市场增量,藏在对消费场景的极致拆解中…

二、TorchRec中的分片

TorchRec中的分片 文章目录 TorchRec中的分片前言一、Planner二、EmbeddingTable 的分片TorchRec 中所有可用的分片类型列表 三、使用 TorchRec 分片模块进行分布式训练TorchRec 在三个主要阶段处理此问题 四、DistributedModelParallel(分布式模型并行)…

如何在 Spring Boot 项目中使用 MyBatis 进行批量操作以提升性能?

MyBatis 提供了 ExecutorType.BATCH 类型,允许将多个 SQL 语句进行组合,最后统一执行,从而减少数据库的访问频率,提升性能。 以下是如何在 Spring Boot 项目中使用 MyBatis 进行批量操作的关键点: 1. 配置 MyBatis 使…

Redis 字符串(String)详解

1. 什么是字符串类型 在 Redis 中,字符串(String) 是最基本的数据类型。它可以包含任何数据,比如文本、JSON、甚至二进制数据(如图片的 Base64 编码),最大长度为 512 MB。 字符串在 Redis 中不…

Elasticsearch 系列专题 - 第四篇:聚合分析

聚合(Aggregation)是 Elasticsearch 的强大功能之一,允许你对数据进行分组、统计和分析。本篇将从基础到高级逐步讲解聚合的使用,并结合实际案例展示其应用。 1. 聚合基础 1.1 什么是聚合(Aggregation)? 聚合是对文档集合的统计分析,类似于 SQL 中的 GROUP BY 和聚合…

YOLO学习笔记 | YOLOv8 全流程训练步骤详解(2025年4月更新)

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 这里写自定义目录标题 一、数据准备1. 数据标注与格式转换2. 配置文件生…

context上下文(一)

创建一个基础的context 使用BackGround函数,BackGround函数原型如下: func Background() Context {return backgroundCtx{} } 作用:Background 函数用于创建一个空的 context.Context 对象。 context.Background() 函数用于获取一个空的 cont…

Java中常见的设计模式

Java中常见的设计模式 Java 中有 23 种经典设计模式,通常被分为三大类:创建型、结构型和行为型。每个设计模式都解决了不同类型的设计问题。以下是几种常见设计模式的总结,并附带了实际应用场景、示例代码和详细的注释说明。 一、创建型设计…