2009-01-15 28 views
2

我有一個動態類,用作配置設置的存儲容器。這些設置是該類的變量,它具有讀取和寫入配置文件,數據庫等的方法。現在,只要類變量發生更改,就要觸發寫入持久存儲。由於變量是在運行時動態添加的,所以我不能使用get/set方法,如果可以的話,這也會導致很多樣板代碼。在Flex中,我如何知道動態對象的屬性何時更改?

如何爲觸發我的課程屬性觸發的事件?

回答

2

您可以從mx.utils.Proxy繼承此類的此屬性。它可以讓你有對象是動態的,但仍然能夠編寫運行時屬性被訪問一些自定義代碼(類似於getter和setter - 見getProperty()setProperty()

0

我會考慮避免動態對象,而是用一種存儲方法和一種檢索數據的方法創建數據存儲類(SettingsModel?)。因此,而不是使用:

configurationSettings.randomSetting = value; 

...你可以這樣寫:

configurationSettings.store("randomSetting", value); 

你可以在內部存儲的命名設置在一個字典,並做需要在store()方法做什麼魔法。

這裏的主要優點是可讀性:當你看到一個被調用的方法時,你會知道它背後的功能。出於同樣的原因,我傾向於不喜歡getter/setter函數。

最後這是一個味道問題,所以如果你的代碼沒有被破壞,爲什麼要修復它。 :)

相關問題