对象的一阶段和两阶段构建

由两种用于创建图形对象(例如笔和画笔)的技术可供选择:

  • 一阶段构建:在一个阶段中构造和初始化对象 - 全都使用构造函数。

  • 两阶段构建:在两个单独的阶段中构造和初始化对象。 由构造函数创建对象,由初始化函数来初始化该对象。

两阶段构建总是更安全。 在一阶段构建中,如果提供的参数有误或内存分配失败,构造函数可能会引发异常。 两阶段构建避免了此问题,不过你需要检查是否失败。 无论哪种情况,销毁对象的过程都相同。

注意

这些技术适用于创建任何对象,而不仅仅是图形对象。

这两种构建技术的示例

下面的简短示例演示了这两种构造笔对象的方法:

// One-stage
CPen myPen1(PS_DOT, 5, RGB(0, 0, 0));

// Two-stage: first construct the pen
CPen myPen2;
// Then initialize it
if (myPen2.CreatePen(PS_DOT, 5, RGB(0, 0, 0)))
{
   // Use the pen
}

你想进一步了解什么

另请参阅

图形对象