Attr命名空间下实现了Mangalore里的动态属性. 属性是编译期间类型安全的key/value对, 这是数据库(database)子系统的基础....image.png
如图, AttrId相于属性类型, 而AttributeDefinition是属性类型的定义, 其中包含了属性名, 属性的四字节码, 值类型和访问类型(读/写)....我觉得最大的好处是可以把某个对象的属性进行抽象化, 不用每个属性都设置一个成员变量....对于序列化来说, 有了Attribute我们可以不用关心具体的成员变量而对所有的Attriubte进行统一的处理. 仅仅是增加一个属性成员的话, 是不用对类的代码进行更改的....而有了Attribute, 我们只需要知道属性名就可以动态的增加或减少属性了, 这对于脚本化也提供了及大的便利性, 呵呵.