news 2026/7/30 20:18:50

创建型、结构型与行为型设计模式的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
创建型、结构型与行为型设计模式的区别

设计模式根据其目的和用途分为创建型、结构型和行为型三种类型,它们的区别如下:

创建型设计模式

  1. 目的:主要用于对象的创建过程,将对象的创建和使用分离。其关注点在于如何创建对象,通过特定的方式来控制对象的创建过程,比如隐藏对象创建的复杂细节、确保对象的唯一性等。
  2. 常见模式
    • 单例模式:保证一个类仅有一个实例,并提供一个全局访问点。例如,在数据库连接池的实现中,为了避免过多的数据库连接资源浪费,通常会使用单例模式确保只有一个连接池实例。
    • 工厂模式:包括简单工厂、工厂方法和抽象工厂。工厂模式将对象的创建逻辑封装在工厂类中,客户端通过工厂类创建对象,而不需要了解对象创建的具体细节。如游戏开发中,通过一个角色工厂来创建不同类型的游戏角色。
    • 建造者模式:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。例如,在构建一个复杂的用户对象时,该对象可能有姓名、年龄、地址、联系方式等多个属性,使用建造者模式可以方便地构建不同配置的用户对象。
  3. 解决的问题:创建型模式解决的是对象创建过程中的复杂性、灵活性以及资源管理等问题,使得对象的创建过程更易于维护和扩展。

结构型设计模式

  1. 目的:主要用于处理类或对象的组合结构,通过将类或对象组织成更大的结构,以实现功能增强或优化。其重点在于如何将类或对象组合在一起,形成更复杂的结构,同时保持结构的灵活性和可维护性。
  2. 常见模式
    • 代理模式:为其他对象提供一种代理以控制对这个对象的访问。例如,在网络访问中,当访问一些外部资源时,可能由于权限、性能等原因,通过代理服务器来代替直接访问目标资源。
    • 装饰器模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰器模式比生成子类更为灵活。比如,在一个图形绘制系统中,为了给一个基本图形(如圆形)添加阴影、边框等额外效果,可以使用装饰器模式。
    • 适配器模式:将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。例如,在将旧的支付接口适配到新的支付系统中,适配器模式就可以发挥作用。
  3. 解决的问题:结构型模式解决的是如何将类或对象组织成更高效、灵活的结构,以满足不同的功能需求,提高代码的复用性和可维护性。

行为型设计模式

  1. 目的:主要用于处理对象之间的交互和职责分配,关注对象之间如何进行通信、协作以及如何分配职责,以实现特定的行为。其核心是通过对象之间的交互来完成复杂的任务,而不是关注对象的创建和结构。
  2. 常见模式
    • 观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。例如,在社交媒体平台上,当一个用户发布新内容时,关注该用户的其他用户会收到通知。
    • 策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。比如,在一个电商系统中,根据不同的促销活动,选择不同的折扣计算策略。
    • 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。例如,在一个文件处理系统中,读取文件、处理文件内容、保存文件的基本流程是固定的,但不同类型文件(如文本文件、二进制文件)的具体处理方式可以在子类中实现。
  3. 解决的问题:行为型模式解决的是对象之间的交互复杂性、职责分配合理性以及行为的可扩展性等问题,使系统的行为更加清晰、易于维护和扩展。

创建型设计模式侧重于对象的创建过程,结构型设计模式关注对象和类的组合结构,行为型设计模式则聚焦于对象之间的交互和职责分配。它们从不同角度为软件设计提供了有效的解决方案,帮助开发者构建更加灵活、可维护和可扩展的软件系统。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 0:11:08

数据编目与元数据管理:不可不知的关系

数据编目与元数据管理:像图书馆管理员和藏书索引的共生密码 关键词 数据编目、元数据管理、数据治理、数据资产、元数据模型、数据目录、数据发现 摘要 你有没有过这样的经历?打开企业的数据平台,看到几百张表名像乱码的数据库表(…

作者头像 李华
网站建设 2026/7/30 11:45:20

Safari浏览器特殊配置:iOS设备上的最佳实践

Safari浏览器特殊配置:iOS设备上的最佳实践 在移动互联网高度成熟的今天,用户早已不再满足于“能用”的网页体验——他们期待的是流畅、智能、无缝的交互。而当你的 Web 应用承载着语音识别、实时流式响应、文件上传等复杂功能时,一个看似普…

作者头像 李华
网站建设 2026/7/30 3:34:11

大数据升级之路 | Storm理论详解

随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统(高频交易、股票)等等,大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点&#xff…

作者头像 李华
网站建设 2026/7/30 13:07:17

字节新论文:通过Context-Folding记忆折叠实现复杂Agent

摘要 今天一起看下字节新出论文《Scaling Long-Horizon LLM Agent via Context-Folding》。 在构建长程(Long-Horizon)Agent 时,上下文窗口的线性增长与注意力的二次方开销是制约模型推理能力与运行效率的核心瓶颈。不同于传统的 RAG 或基于摘要的被动压缩,字节提出的Cont…

作者头像 李华
网站建设 2026/7/29 17:36:06

LobeChat能否部署在Render平台?持续部署便捷方案

LobeChat能否部署在Render平台?持续部署便捷方案 在个人AI助手和智能客服系统快速普及的今天,越来越多开发者面临一个现实问题:如何以最低成本、最快速度将自定义聊天界面部署到公网,同时保障数据可控与交互流畅?主流闭…

作者头像 李华
网站建设 2026/7/30 2:20:49

光刻胶增感剂用四甲氧甲基甘脲TMMG

四甲氧甲基甘脲分子模型1 化学成分与功能原理1.1 化学成分与结构四甲氧甲基甘脲(TMMG)是一种在光刻胶中扮演增感剂(Sensitizer) 角色的关键化学品。它的分子结构同时包含甘脲基和四个甲氧基甲基基团。在光刻过程中,TMM…

作者头像 李华