Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Autor: Piotr Szawdyński
Wzorce projektowe

RAII

[wzorzec projektowy] Gwarantuje prawidłowe zwolnienie przejętych zasobów.

Budowa wzorca projektowego

C/C++
class CObject
{
public:
    void allocResources();
    void freeResources();
}; //class CObject

class CRAII
{
private:
    CObject & m_object;
public:
    CRAII( CObject & object )
        : m_object( object )
    {
        m_object.allocResources();
    }
    ~CRAII()
    {
        m_object.freeResources();
    }
};

Opis szczegółowy

RAII (ang. Resource Acquisition Is Initialization) - popularny wzorzec projektowy, którego zadaniem jest przejęcie kontroli nad zasobem w chwili tworzenia obiektu (w konstruktorze) i zagwarantowanie, że zasób zostanie automatycznie zwolniony (w destruktorze).

Przykładami zastosowania wzorca projektowego RAII są szablony » boost / threadlock_guard i » boost / threadunique_lock biblioteki » Dokumentacjaboost. Uproszczona koncepcja działania RAII została przedstawiona w dokumencie » boost / thread » mutexscoped_lock.

Zagadnienia powiązane

Dokumentacja
lock_guardUproszczony szablon » Dokumentacjasekcji krytycznej o ograniczonym zasięgu. (szablon klasy)
unique_lockRozbudowany szablon » Dokumentacjasekcji krytycznej o ograniczonym zasięgu. (szablon klasy)
scoped_lockZakładanie » Dokumentacjasekcji krytycznej o ograniczonym zasięgu. (alias)