• 二阶构造模式


    构造函数

    只提供自动初始化成员变量的机会

    不能保证初始化逻辑一定成功

    执行return语句后构造函数立即结束

    半成品对象的概念

    初始化操作不能按照预期完成而得到的对象

    半成品对象是合法的c++对象,也是Bug的重要来源

    二阶构造示例一

    class TwoPhaseCons {

    private:

      TwoPhaseCons() {  //第一阶段构造函数

      }

      bool construct() {  //第二阶段构造函数

        return true;

      }

    public:

      static TwoPhaseCons* NewInstance();  //对象创建函数

    }

    二阶构造示例二

    TwoPhaseCons* TwoPhaseCons::NewInstance() {

      TwoPhaseCons* ret = new TwoPhaseCons();

      //若第二阶段构造失败,返回NULL

      if( !( ret && ret->construct() ) ) {

        delete ret;

        ret = NULL;

      }

      return ret;

    }

    小结

    构造函数只能决定对象的初始化状态

    构造函数中初始化操作的失败不影响对象的诞生

    初始化不完全的半成品对象是Bug的重要来源

    二阶构造人为的将初始化过程分为两部分

    二阶构造能够确保创建的对象都是完整初始化的

  • 相关阅读:
    运用Python计算Π的多少(大致计算)
    运用python绘制小猪佩奇
    博客园使用指南 wiki
    博客园 — 打赏功能
    新SSM框架整合
    springMVC
    Eclipse转IDEA的配置!!
    Java学习小知识总结
    java-StringBuffer
    博客园自定义主题
  • 原文地址:https://www.cnblogs.com/sugarWill666/p/9074500.html
Copyright © 2020-2023  润新知