首页 > 其他分享 >设计模式学习整理

设计模式学习整理

时间:2024-10-13 20:22:34浏览次数:7  
标签:调用 对象 创建 生成器 模式 学习 整理 设计模式 构造函数

创建型模式

  • 创建型模式提供了创建对象的机制, 能够提升已有代码的灵活性和可复用性。

工厂方法模式

  • 在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型;
  • 实现方式:使用特殊的工厂方法代替对于对象构造函数的直接调用 (即使用 new运算符), 对象仍将通过 new运算符创建, 只是该运算符改在工厂方法中调用罢了。 工厂方法返回的对象通常被称作 “产品”。

抽象工厂模式

  • 创建一系列相关的对象, 而无需指定其具体类;
  • 实现方式:
    • 对于系列产品的每个变体, 都将基于抽象工厂接口创建不同的工厂类,每个工厂类都只能返回特定类别的产品;
    • 客户端代码可以通过相应的抽象接口调用工厂和产品类。 你无需修改实际客户端代码, 就能更改传递给客户端的工厂类, 也能更改客户端代码接收的产品变体。

生成器模式

  • 能够分步骤创建复杂对象, 该模式允许你使用相同的创建代码生成不同类型和形式的对象;
  • 应用场景:对于一个复杂对象, 在对其进行构造时需要对诸多成员变量和嵌套对象进行繁复的初始化工作,通常情况下, 绝大部分的参数都没有使用, 这使得对于构造函数的调用十分不简洁(如大部分参数不适用传入NULL等);
  • 实现方式
    • 将对象构造代码从产品类中抽取出来, 并将其放在一个名为生成器的独立对象中;
    • 每次创建对象时, 你都需要通过生成器对象执行一系列步骤。 重点在于你无需调用所有步骤, 而只需调用创建特定对象配置所需的那些步骤即可;
    • 可以进一步将用于创建产品的一系列生成器步骤调用抽取成为单独的主管类。 主管类可定义创建步骤的执行顺序, 而生成器则提供这些步骤的实现。

原型模式

  • 使使用者能够复制已有对象, 而又无需使代码依赖它们所属的类;
  • 实现方法:将克隆过程委派给被克隆的实际对象;即所有支持克隆的对象声明了一个通用接口, 该接口让你能够克隆对象, 同时又无需将代码和对象所属类耦合。 通常情况下, 这样的接口中仅包含一个克隆方法。

单例模式

  • 保证一个类只有一个实例, 并提供一个访问该实例的全局节点;
  • 实现方式:将默认构造函数设为私有;新建一个静态构建方法作为构造函数供外部调用,其中调用私有构造函数来创建对象, 并将其保存在一个静态成员变量中,对该函数当调用都将返回缓存的对象;

结构型模式

  • 结构型模式介绍如何将对象和类组装成较大的结构, 并同时保持结构的灵活和高效。

适配器模式

  • 使接口不兼容的对象能够相互合作;

桥接模式

组合模式

装饰模式

外观模式

享元模式

代理模式

行为模式

  • 行为模式负责对象间的高效沟通和职责委派。

标签:调用,对象,创建,生成器,模式,学习,整理,设计模式,构造函数
From: https://www.cnblogs.com/gq-z/p/18462877

相关文章

  • 2024-2025-1 20241423 《计算机基础与程序设计》第3周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里2024-2025-1计算机基础与程序设计第三周作业这个作业的目标学习《C语言程序设计》第二章并完成云班课测试。自学《计算机科学概论》第2章,第3章并完成云班课测试......
  • 2024-2025-1 20241312 《计算机基础与程序设计》第3周学习总结
    |这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP|这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03|这个作业的目标|数字分类与计数法位置计数法进制转换模拟数据与数字数据压缩与解压数字化信息安全|作业正文|h......
  • ChatGPT 中文版镜像网站整理合集(2024/10/13)
    一、GPT中文镜像站① yixiaai.com 支持GPT4、4o以及o1,支持MJ绘画② chat.lify.vip 支持通用全模型,支持文件读取、插件、绘画、AIPPT③ AIChat 支持GPT3.5/4,4o以及MJ绘画1.什么是镜像站镜像站(MirrorSite)是指通过复制原始网站内容和结构,创建的备用网站。其主要目的......
  • 决策树和集成学习
    一、决策树1、概述决策树是一种树形结构,树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果决策树的建立过程:特征选择:选择有较强分类能力的特征决策树生成:根据选择的特征生成决策树决策树也容易过拟合,需要采用剪枝的方式......
  • 从小白到大神:快速掌握数据挖掘的学习路径!
    0前言数据分析的最关键部分是数据挖掘,啥是数据挖掘?普通人很难感知大海,更别说寻宝但对石油开采人员,大海有坐标。他们对地质勘探,分析地质构造,发现哪些地方可能有石油。然后用开采工具,深度挖掘,直到打到石油。大海、地质信息、石油对开采人员就是数据源、地理位置及分析结果。......
  • 2024-2025-1学期 20241423 《计算机基础与程序设计》第3周学习总结
    学期(如2024-2025-1)学号(如:20241300)《计算机基础与程序设计》第X周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第三周作业)这个作业的目标学习《......
  • 2024-2025-1 20241304 《计算机基础与程序设计》第3周学习总结
    2024-2025-120241304《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程<[2024-2025-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP>)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03)......
  • 2024-2025-1 20241415 《计算机基础与程序设计》第三周学习总结
    2024-2025-120241415《计算机基础与程序设计》第三周学习总结作业信息这个作业属于哪个课程<班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<温习巩固本周所学>......
  • 【2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者,其影响力标志的未来是
    (目录)欢迎关注微信公众号:数据科学与艺术*近日,2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者,这是历史上首次出现这样的情况。这项奖项原本只授予对自然现象和物质的物理学研究作出重大贡献的科学家,如今却将全球范围内对机器学习和神经网络的研究和开发作为了一种......
  • 2024-2025-1 20241417 《计算机基础与程序设计》第三周学习总结
    这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第三周作业)这个作业的目标<数字分类与计数法,位置计数法,进制转换,模拟数据与数字数据,压缩与解压,数字化,信息安全>作业......