看板 Flash 關於我們 聯絡資訊
※ 引述《etrexetrex (moonet)》之銘言: : dynamic class 的好處就是可以動態加入成員 : 那他有什麼缺點呢? : 應該會比較慢吧? : 不曉得有沒有dynamic class 和非 dynamic class 的比較 : 我現在想要寫一個class : 如果用 dynamic class 的話就可以寫出很短的code : 如果不用的話就會很長 : 現在正在猶豫中 我是覺得dynamic class的效率 除了dynamic variable以外,一切都跟non-dynamic class一樣 dynamic variable說穿了 只是一個被包裝起來的Dictionary (hash map)而已 所以以下code理論上執行效能是一樣的 這是一個non-dynamic class class MyClass1 { public var dictionary:Dictionary = new Dictionary(); } 還有一個dynamic class dynamic class MyClass2 { } 這是主程式,兩個片段執行效能應該是差不多的 //片段1 var obj1:MyClass1 = new MyClass1(); obj1.dictionar["myVar"] = 10; //片段2 var obj2:MyClass2 = new MyClass2(); obj2.myVar = 10; 我個人建議是想要用dynamic class 不如在non-dynamic class上宣告一個Dictionary 因為dynamic class沒有compile-time變數檢察的優勢 一切的變數都是run-time才動態存取的 像是Stardust的Particle class 就是一個包含Dictionary的non-dynamic class的例子 http://bit.ly/duhWSK 請見第82行 其目的是讓某些自訂的Initializer或Action在它身上安插自訂變數 然後此class又定義一些其他一定會用到的property 如此一來,compile-time檢察不出來的變數錯誤 就僅侷限於會用到Dictinoary的程式碼片段 -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Blog http://cjcat.blogspot.com Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.181