Jedno- i dwuetapowa konstrukcja obiektów
Istnieje możliwość wyboru między dwiema technikami tworzenia obiektów graficznych, takich jak długopisy i pędzle:
Konstrukcja jednoetapowa: konstruowanie i inicjowanie obiektu na jednym etapie, wszystkie z konstruktorem.
Konstrukcja dwuetapowa: Konstruowanie i inicjowanie obiektu w dwóch oddzielnych etapach. Konstruktor tworzy obiekt i inicjuje funkcję inicjowania.
Dwuetapowa budowa jest zawsze bezpieczniejsza. W jednoetapowej konstrukcji konstruktor może zgłosić wyjątek, jeśli podasz nieprawidłowe argumenty lub alokacja pamięci zakończy się niepowodzeniem. Ten problem jest unikany przez dwuetapową konstrukcję, chociaż trzeba sprawdzić awarię. W obu przypadkach zniszczenie obiektu jest tym samym procesem.
Uwaga
Te techniki mają zastosowanie do tworzenia obiektów, a nie tylko obiektów graficznych.
Przykład obu technik budowy
Poniższy krótki przykład przedstawia obie metody konstruowania obiektu pióra:
// 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
}