2008-11-13 12 views
1

ActionScript 3.0中有不俗的原生XML支持,所以我不驚訝地看到很多人加載外部XML,然後圍繞傳遞對象的代碼不同模塊/章節。圍繞XML物體通過與填充一個struct

但是我的直覺是創建一個類(即具有靜態命名/類型的字段),從XML填充它,然後圍繞票代替。優點是將結構從消息/數據格式中分離出來,但是你確實失去了XML提供的可搜索性,如果你有很多嵌套結構,我可以看到它可能涉及很多初始處理時間來轉換它。

那麼這裏最好的做法是什麼?對於非常小的項目/使用案例,我仍然只使用XML,但是當它變得更大時,或者我具有遠見時,我傾向於走上課程路線。

回答

0

最後,我首選的方案是填充從數據類,但保留對XML參考的地方,每當我需要的搜索能力。

0

我傾向於打造「讀者」類,其加載數據,並將其存儲在自己的XML對象。然後,我將所需的任何數據從XML傳遞到其他對象作爲本機類型。

+0

因此,而不是一個結構,只是在xml對象的外觀? 聽起來像是兩全其美,我非常喜歡這個解決方案,特別是在像get3/get訪問器的as3語言中 – putgeminmouth 2008-11-13 19:57:03

1

我會說,由於沒有靜態結構的XML對象它打開了很多可能性的錯誤蔓延到系統也使代碼少了很多閱讀和理解。

所以,我想說的是一類是要走的路,這是額外的工作,但你的系統是一個很大的結構化的緣故吧。

我在過去曾試驗過圍繞XML對象的包裝類,但這可能會使這些類中的代碼非常混亂。

我目前正在嘗試將XML對象綁定到使用我寫的XMLObjectBinder類的對象(純動作項目不是Flex),因爲我發現這種方法最乾淨,因爲XML儘快出圖。所以我的類現在更清潔了,因爲它們內部缺少XML,綁定通常是來自工廠的單線調用。

在事情的可搜索性方面,我同意你失去了這一點,但我會說工廠模式結合一些XML到對象綁定將消除很多這些問題。

0

我不能爲ActionScript說話,但我覺得我所經歷過的VB6和C#可能是相關的:

XML消息格式的變化。當他們這樣做時,與消息中斷格式緊密結合的代碼。如果您可以將所有可與XML協同工作的代碼保存在一個地方,那麼您可以將對應用程序的損害包含在消息格式的變化中。從XML構建對象,然後使用代碼中的對象可以讓您保持絕大部分代碼與消息格式的變化隔離。

有很多應用程序,這不是很大的風險 - 例如,可以將代碼的邏輯結構與XML的結構連接起來,因爲XML可以映射應用程序的邏輯結構域。所以你必須用一些判斷來決定採取哪種方法。