Cairngorm中的職責劃分

2021-08-22 12:37:45 字數 1233 閱讀 7978

cairngorm是乙個輕量級的flex框架,提供了使用flex構建應用的最佳實踐。本文討論cairngorm架構中各角色的職能劃分及訊息機制。

cairngorm的架構如下圖(圖中「元件」表示架構元素,「介面」表示事件的派發或監聽):

檢視(view)

檢視接收使用者事件或系統事件,並分派應用事件。

對於使用者事件產生的應用事件,可以理解為「使用者請求(request)」。

系統事件包括:元件的建立、初始化,模型變化等。比如,模型(model)改變時,會分派事件,檢視接收到事件後自動更新。

檢視分派事件時,呼叫cairngormeventdispatcher的例項進行分派(dispatch),而不是用元件自身的eventdispatcher,這樣可以對事件進行統一排程。

控制器(controller)

控制器接收應用事件,並根據事件名稱執行事先註冊的command。

控制器繼承com.adobe.cairngorm.control.frontcontroller,並且在整個應用中有唯一的例項。

可以在mxml中宣告控制器的唯一例項:

control:rssreadercontroller

id="controller"

/>

控制器在初始化時要註冊command,將command與事件關聯起來。

命令(command)

命令處理使用者請求的執行。但命令自身不直接處理業務邏輯,而是呼叫business,從business返回執行的結果後,對模型(model)進行更改。

業務(business)

業務(business)物件執行業務邏輯,可能對不同的service進行乙個或者多個非同步呼叫,並將非同步呼叫的結果返回給command。

服務(service)

封裝了遠端呼叫(httpservice,remoteservice,webservice等)。

模型(model)

可繫結的資料集合。繫結了模型的檢視可以自動更新。

模型要宣告為 [bindable]

command會更改模型的資料。

值物件(vo)

用於介面顯示的資料型別定義。模型中的資料由vo組合而成。

實際應用的例子可以參考

****** flex rss reader using cairngorm 研究,對這裡抽象的概念進行了具體化。

MVC架構的職責劃分

模型 檢視 控制器 mvc 是一種設計框架 設計模式 mvc 的目標是將業務邏輯從使用者介面的考慮中分離。這樣,開發者就可以更容易地改變每一部分而不會影響其他。在 mvc 中,view 可能由 jsp 實現 controller 是乙個 servlet,現在一般用 struts 實現 model 則...

MVC架構的職責劃分原則

mvc設計原則 模型 檢視 控制器 mvc 是一種設計框架 設計模式 mvc 的目標是將業務邏輯從使用者介面的考慮中分離。這樣,開發者就可以更容易地改變每一部分而不會影響其他。在 mvc 中 model 代表資料和業務規則 view 包含了使用者介面元素,例如文字,表單等 controller 則管...

mvc 職能劃分 MVC架構的職責劃分原則

最近負責乙個專案,用了 但是隨著對業務邏輯理解的深入,才開始意識到問題的嚴重。我錯誤地理解了 mvc 中的 controller,想當然地根據以往的經驗,把所有的業務邏輯都放在 controller 的 action 中去實現。於是,每乙個 controller 的 都上千行,越來越臃腫。最後,我下...