二阶构造模式

来源:互联网 发布:淘宝卖家怎么设置定制 编辑:程序博客网 时间:2024/06/05 08:28
  • 构造函数
    • 只提供自动初始化成员变量的机会
    • 不能保证初始化逻辑一定成功
    • 执行return语句后构造函数立即结束
  • 构造函数能决定的只是对象的初始状态,而不是对象的诞生
  • 半成品对象的概念

    • 初始化操作不能按照预期完成而得到的对象
    • 半成品对是合法的c++对象,也是bug的重要来源
  • 二阶构造

    • 工程开发中的构造过程可分为
      1. 资源无关的初始化操作
        • 不可能出现异常情况的操作
      2. 需要使用系统资源的操作
        • 可能出现异常情况,如:内存申请,访问文件
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;}
原创粉丝点击