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