2012-05-28 28 views
2

我建立一個應用程序在ActionScript 3,即:異步應用設計

  • 使得Web請求各種網絡服務;
  • 在一些接口項目上使用動畫;
  • 需要用戶輸入,這有時是「愚蠢的」。例如,用戶不想等待Web響應並取消某個操作。

什麼是處理應用程序所有可能狀態並協調完成線程的所有回調(如Web服務請求)的最佳實踐?

對於一個簡單的應用程序,在App的Singleton中存儲一些屬性可以完成這項工作。然而,對於更復雜的應用程序,這種跟蹤的複雜性幾何級數增長。

示例:要啓用特定按鈕,應完成三個Web請求,其中兩個是順序的,一個使用前一個結果,兩個完成後,應使用幻燈片動畫顯示一個面板。如果用戶決定在Web請求或動畫階段取消該過程,他應該可以通過點擊另一個按鈕來完成該過程。有幾十種這樣的產品,具有不同的邏輯和要求。到目前爲止,我正在用回調函數和App的Singleton變量來做這件事。回調數量急劇增加。

規劃這樣的應用程序變得非常困難。請同時諮詢一種以示意方式描繪這樣的邏輯和相關性的方法?我不習慣UML,簡單的算法方案對我來說比較熟悉。

回答

3

我的建議是花一些時間來看一些比較流行的基於MVC的ActionScript 3.0框架。這些專門設計用於以高度分離的方式和使用最佳實踐來滿足您詳細的要求。

我幾年來一直在使用PureMVC,並發現它很輕,靈活且直觀。它的優勢在於得到了非常好的支持(其作者大量參與回答論壇上的問題),並且該框架的知識可以轉移,因爲它已被移植到各種其他語言(JavaScript very recently)。

一個好的框架將爲您做出許多基本的架構決策,讓您可以自由地專注於實現。通過在理解框架方面進行一點投資,計劃應用程序(例如所描述的應用程序)變得更加容易,因爲您可以查看需求並立即開始將它們映射到所選框架的各個參與者。

+0

+1對於PureMVC的引用,我必須同意它通過決定將代碼放在框架中的位置,使我的生活變得如此簡單。 – Neil