Construção de objetos em um e dois estágios

Você pode escolher entre duas técnicas para criar objetos gráficos, como canetas e pincéis:

  • Construção de uma fase: construa e inicialize o objeto em uma fase, tudo com o construtor.

  • Construção em duas fases: construa e inicialize o objeto em duas fases separadas. O construtor cria o objeto e uma função de inicialização o inicializa.

A construção em duas fases é sempre mais segura. Na construção de uma fase, o construtor poderá gerar uma exceção se você fornecer argumentos incorretos ou a alocação de memória falhar. Esse problema é evitado pela construção em duas fases, embora você precise verificar se há falha. Em ambos os casos, destruir o objeto é o mesmo processo.

Observação

Essas técnicas se aplicam à criação de objetos, não apenas objetos gráficos.

Exemplo de ambas as técnicas de construção

O seguinte exemplo breve mostra os dois métodos de construção de um objeto de caneta:

// 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
}

O que mais você deseja saber?

Confira também

Objetos gráficos