RAII是“資源獲取就是初始化”的縮語(yǔ)(Resource Acquisition Is Initialization),是一種利用對(duì)象生命周期來(lái)控制程序資源(如內(nèi)存、文件句柄、網(wǎng)絡(luò)連接、互斥量等等)的簡(jiǎn)單技術(shù)。 RAII 的一般做法是這樣的:在對(duì)象構(gòu)造時(shí)獲取資源,接著控制對(duì)資源的訪問(wèn)使之在對(duì)象的生命周期內(nèi)始終保持有效,最后在對(duì)象析構(gòu)的時(shí)候釋放資源。借此,我們實(shí)際上把管理一份資源的責(zé)任托管給了一個(gè)對(duì)象。這種做法有兩大好處: 1,我們不需要顯式地釋放資源。 2,采用這種方式,對(duì)象所需的資源在其生命期內(nèi)始終保持有效 —— 我們可以說(shuō),此時(shí)這個(gè)類維護(hù)了一個(gè) invariant。這樣,通過(guò)該類對(duì)象使用資源時(shí),就不必檢查資源有效性的問(wèn)題,可以簡(jiǎn)化邏輯、提高效率。