zmienia się w zależności od ErrorHandling return _ptr;
private:
T * _ptr;
// Używanie:
struct Foo
void Bar() { }
SmartPtr<Foo, NoChecking<Foo> > ptrNoCheck = new Foo();
ptrNoCheck.Get()->Bar(); // Get() nie sprawdzane
SmartPtr<Foo, StrictChecking<Foo> > ptrChecked = new Foo();
ptrChecked.Get()->Bar(); // Get() sprawdzane
Aby dodać wsparcie dla np. wielowątkowości i liczenia referencji, i jednocześnie pozostawić użytkownikowi możliwość wyboru zachowania klasy, jak również dodawania własnych „strategii zachowań”, wystarczy dodać kolejne wytyczne. W przypadku stosowania innych technik, osiągnięcie podobnych rezultatów najprawdopodobniej nie byłoby tak łatwe.
Wytyczne są techniką użyteczną szczególnie dla twórców bibliotek i silników, ponieważ umożliwiają pisanie kodu, który może być w łatwy, przenośny, efektywny i bezpieczny typologicznie sposób rozszerzany przez użytkowników.
Przypisy
Linki zewnętrzne Przykładowy, pierwszy rozdział z powyższej pozycji, zawierający opis wytycznych (po angielsku) Zastosowanie wytycznych w grach komputerowych do stworzenia elastycznego systemu cząsteczkowego Przykłady wykorzystania wytycznych
Kategoria:Wzorce projektowe