[lesson27]二阶构造模式

二阶构造模式

构造函数的回顾

  • 关于构造函数
    • 类的构造函数用于对象的初始化
    • 构造函数与类同名并且没有返回值
    • 构造函数在对象定义时自动被调用

你该知道的真相

  • 构造函数
    • 只提供自动初始化成员变量的机会
    • 不能保证初始化逻辑一定成功
    • 执行return语句后构造函数立即结束
      构造函数能决定的只是对象的初始状态而不是对象的诞生

半成品对象

  • 半成品对象的概念
    • 初始化操作不能按照预期完成而得到的对象
    • 半成品对象时合法的C++对象,也是bug的重要来源

二阶构造

  • 工程开发中的构造过程可分为

    • 资源无关的初始化操作
      • 不可能出现异常情况的操作
    • 需要使用系统资源的操作
      • 可能出现异常情况,如内存申请,访问文件等

    在这里插入图片描述

  • 二阶构造示例一

    在这里插入图片描述

  • 二阶构造示例二

    在这里插入图片描述

小结

  • 构造函数只能决定对象的初始化状态
  • 构造函数中初始化操作的失败不影响对象的诞生
  • 初始化不完全的半成品对象是bug的重要来源
  • 二阶构造人为的将初始化过程分为两部分
  • 二阶构造能够确保创建的对象都是完整初始化的

相关推荐

  1. 新概念英语1:Lesson 21,23学习笔记

    2024-04-14 15:42:06       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 15:42:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 15:42:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 15:42:06       82 阅读
  4. Python语言-面向对象

    2024-04-14 15:42:06       91 阅读

热门阅读

  1. 3.15 Python逻辑运算符

    2024-04-14 15:42:06       35 阅读
  2. 基于单片机的天然气报警系统设计

    2024-04-14 15:42:06       36 阅读
  3. 【算法】Cordic算法的原理及matlab/verilog应用

    2024-04-14 15:42:06       32 阅读
  4. 题目:输入3个数a,b,c,按大小顺序输出。

    2024-04-14 15:42:06       33 阅读
  5. 谷歌翻译接口-国内使用在线翻译API

    2024-04-14 15:42:06       31 阅读
  6. 云服务器&宝塔&ssh:tabby 部署SpringBoot项目

    2024-04-14 15:42:06       187 阅读
  7. 《高等数学》笔记

    2024-04-14 15:42:06       34 阅读
  8. 两分钟启动一个flask应用

    2024-04-14 15:42:06       34 阅读
  9. 使用requests包批量下载网页图片

    2024-04-14 15:42:06       36 阅读
  10. Android 日历-周视图

    2024-04-14 15:42:06       36 阅读