我有一个动态类,用作配置设置的存储容器。这些设置是该类的变量,它具有读取和写入配置文件,数据库等的方法。现在,只要类变量发生更改,就要触发写入持久存储。由于变量是在运行时动态添加的,所以我不能使用get/set方法,如果可以的话,这也会导致很多样板代码。在Flex中,我如何知道动态对象的属性何时更改?
如何为触发我的课程属性触发的事件?
我有一个动态类,用作配置设置的存储容器。这些设置是该类的变量,它具有读取和写入配置文件,数据库等的方法。现在,只要类变量发生更改,就要触发写入持久存储。由于变量是在运行时动态添加的,所以我不能使用get/set方法,如果可以的话,这也会导致很多样板代码。在Flex中,我如何知道动态对象的属性何时更改?
如何为触发我的课程属性触发的事件?
您可以从mx.utils.Proxy
继承此类的此属性。它可以让你有对象是动态的,但仍然能够编写运行时属性被访问一些自定义代码(类似于getter和setter - 见getProperty()
和setProperty()
)
我会考虑避免动态对象,而是用一种存储方法和一种检索数据的方法创建数据存储类(SettingsModel?)。因此,而不是使用:
configurationSettings.randomSetting = value;
...你可以这样写:
configurationSettings.store("randomSetting", value);
你可以在内部存储的命名设置在一个字典,并做需要在store()
方法做什么魔法。
这里的主要优点是可读性:当你看到一个被调用的方法时,你会知道它背后的功能。出于同样的原因,我倾向于不喜欢getter/setter函数。
最后这是一个味道问题,所以如果你的代码没有被破坏,为什么要修复它。 :)