Costruzione di oggetti in una e due fasi
È possibile scegliere tra due tecniche per la creazione di oggetti grafici, ad esempio penne e pennelli:
Costruzione a uno stadio: costruisce e inizializza l'oggetto in una fase, tutto con il costruttore.
Costruzione a due fasi: costruire e inizializzare l'oggetto in due fasi separate. Il costruttore crea l'oggetto e una funzione di inizializzazione lo inizializza.
La costruzione a due stadi è sempre più sicura. In una costruzione a una fase, il costruttore potrebbe generare un'eccezione se si specificano argomenti non corretti o l'allocazione di memoria non riesce. Questo problema viene evitato dalla costruzione a due fasi, anche se è necessario verificare la presenza di errori. In entrambi i casi, l'eliminazione dell'oggetto è lo stesso processo.
Nota
Queste tecniche si applicano alla creazione di oggetti, non solo agli oggetti grafici.
Esempio di entrambe le tecniche di costruzione
Nell'esempio seguente vengono illustrati entrambi i metodi di costruzione di un oggetto penna:
// 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
}