2012-01-27 120 views
0

我試圖熟悉設計模式,模塊化,單元測試等(使用ActionScript)。As3:轉換工具體系結構建議

我現在正在開發一個簡單的「自由變換工具」,就像練習一樣,但我不喜歡我到目前爲止提出的解決方案,所以我會盡量走你的路線的想法。當我提出這個想法時,我想「寫什麼才能測試這個偉大的單元測試框架FlexUnit」,我看到的第一件事就是猜測......一個自由變換工具。 :)當我思考的工具,我運行的每個場景槽的架構「我怎樣才能編寫單元測試什麼東西?」,所以我想出了某種扭曲的MVC元模式的:

  • 一查看所有組件(旋轉區域,拖動區域,調整大小按鈕)
  • 模型(或類似的東西),持有必要的邏輯(setSize,setPositiom,rotateAroundCenter等..)。
  • 還有一個控制器,它將偵聽器添加到視圖組件,更新鼠標光標,當它與組件交互時,獲取鼠標座標,當與組件交互時,執行計算並調用模型中的方法,以更新視圖和良性轉化的對象。

我在想:「確定它的靈活性,我可以隨時切換M,V或C,我實現了我的主要目標,因爲我可以對模型進行大量的單元測試,其中重要的計算是,所以它很棒..「。

我剛剛開始實施它,但我認爲這些想法大多是錯誤的。是的,我可以改變視圖並添加新的皮膚,但它根本不靈活,如果我想添加「skew」(或任何其他)功能,我應該重寫(或者如果我很幸運,只是擴展)M,V和C. 是的,我可以對模型進行束單元測試,但控制器的計算將很難測試。

所以現在我正在考慮像裝飾模式,這將允許我創建任何組合的控件我想要使用和保持其邏輯分離,但我想有選擇重新皮膚控制自己並保持邏輯分離,所以我可以做測試。

我意識到我想創造某種「終極轉換工具」,但我真的試圖推動我的極限並學習一些東西。

+0

是簡單的問題,「你會建議什麼樣的設計模式我用它來構建這個工具?」 – Aaron 2012-01-27 02:46:52

回答

0

不知道我是否在這裏回答你的問題,但你有沒有檢查出任何MVC框架? 如果你還沒有,我會檢查Robotlegs,它應該幫助你創建可測試的代碼。

http://www.robotlegs.org/

+0

是的問題是你會用什麼樣的設計模式來構建這個工具?我真的不想使用孔框架來創建一個組件。 – 2012-01-27 08:51:16

+0

這個框架其實很小。不過,如果你沒有考慮包含它,你不需要MVC。您可以閱讀一般概念並在設計中實施它們。 – francis 2012-01-27 13:41:57