Resource Acquisition Is Initialization
RAII,全稱資源獲取即初始化(英語:Resource Acquisition Is Initialization),它是在一些面向對象語言中的一種慣用法。
RAII源于C++,在Java,C#,D,Ada,Vala和Rust中也有應用。1984-1989年期間,比雅尼·斯特勞斯特魯普和安德魯·柯尼希在設計C++異常時,為解決資源管理時的異常安全性而使用了該用法,后來比雅尼·斯特勞斯特魯普將其稱為RAII。
RAII要求,資源的有效期與持有資源的對象的生命期嚴格綁定,即由對象的構造函數完成資源的分配(獲取),同時由析構函數完成資源的釋放。在這種要求下,只要對象能正確地析構,就不會出現資源泄露問題。
?
?
RAII還有另外一種被稱為RRID(Resource Release Is Destruction)的特殊用法,即在構造時沒有“獲取”資源,但在析構時釋放資源。
?
?
DSL:domain specific language,以極其高效的方式描述特定領域的對象、規則和運行方式的語言。
需要有特定的解釋器與其配合。
高效簡潔的領域語言,與通用語言相比能極大降級理解和使用難度,同時極大提高開發效率的語言。
能夠描述特定領域的世界觀和方法論的語言。
DSL 通過在表達能力上做的妥協換取在某一領域內的高效。
而有限的表達能力就成為了 GPL 和 DSL 之間的一條界限。
如HTML&CSS,SQL等。
?
?
GPL:general purpose language?
總結
以上是生活随笔為你收集整理的Resource Acquisition Is Initialization的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Power PMAC运动控制器 —— 学
- 下一篇: A/D转换器(ADC)