zoukankan      html  css  js  c++  java
  • 二阶构造模式

    构造函数

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

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

    执行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的重要来源

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

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

  • 相关阅读:
    SSM框架学习--Mybatis(一)入门
    Oracle 分页查询与数据去重
    JDBC基础
    Oracle 连接查询
    Java反射
    Oracle数据库常用SQL函数
    Oracle 中的SELECT 关键字(查询、检索)
    Python 短路机制
    Python 字符集
    SQL-MySQL
  • 原文地址:https://www.cnblogs.com/sugarWill666/p/9074500.html
Copyright © 2011-2022 走看看