作者cjcat2266 (CJ Cat)
看板Flash
标题Re: [问题] dynamic class 的优缺点
时间Mon May 31 14:39:56 2010
※ 引述《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