Jednofázová a dvoufázová konstrukce objektů
Máte na výběr mezi dvěma technikami vytváření grafických objektů, jako jsou pera a štětce:
Jednofázová konstrukce: Sestavte a inicializujete objekt v jedné fázi, a to vše pomocí konstruktoru.
Dvoufázová konstrukce: Vytvoření a inicializace objektu ve dvou samostatných fázích Konstruktor vytvoří objekt a inicializační funkce ji inicializuje.
Dvoufázová konstrukce je vždy bezpečnější. Při vytváření jedné fáze může konstruktor vyvolat výjimku, pokud zadáte nesprávné argumenty nebo přidělení paměti selže. Tento problém se vyhne dvoufázové konstrukci, i když musíte zkontrolovat selhání. V obou případech je zničení objektu stejný proces.
Poznámka
Tyto techniky platí pro vytváření libovolných objektů, nejen grafických objektů.
Příklad obou technik konstrukce
Následující stručný příklad ukazuje obě metody vytvoření objektu pera:
// 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
}