天天看點

RAII

  RAII是“資源擷取就是初始化”的縮語(Resource Acquisition Is Initialization),是一種利用對象生命周期來控制程式資源(如記憶體、檔案句柄、網絡連接配接、互斥量等等)的簡單技術。

  RAII 的一般做法是這樣的:在對象構造時擷取資源,接着控制對資源的通路使之在對象的生命周期内始終保持有效,最後在對象析構的時候釋放資源。借此,我們實際上把管理一份資源的責任托管給了一個對象。這種做法有兩大好處:

  1,我們不需要顯式地釋放資源。

  2,采用這種方式,對象所需的資源在其生命期内始終保持有效 —— 我們可以說,此時這個類維護了一個 invariant。這樣,通過該類對象使用資源時,就不必檢查資源有效性的問題,可以簡化邏輯、提高效率。