Robotlegs框架1 5簡介

2022-02-07 18:24:20 字數 2568 閱讀 1313

該框架的1.5版本位於現在已經出了重新架構的2.0版本,所以我決定先研究已經成熟的1.6版本,有時間再研究2.0版本的。

我看完這個框架的原始碼和範例的第一印象就是自動化,這個框架把很多邏輯都整合到了系統內部,而我們只需要進行一些簡單的對映,進行一些簡單的功能實現就能完成乙個專案了。

robotlegs 的mvcs實現將應用程式解耦為4層:model-view-controller (mvc) 和 service層,view 層處理使用者互動. model 層處理使用者建立的或從外部獲取的資料. controller 提供一種封裝各層之間複雜互動的機制. 最後, service 層提供一種和外界(比如遠端服務 api 或檔案系統)互動的獨立機制.

其核心主要是有4個類:

context: 提供乙個中心的事件 bus 並且處理自己的啟動和關閉. 乙個 context 定義了乙個範圍. 框架 actor 們處在 context 之內,並且在 context 定義的範圍之內進行相互間的通訊.在利用robotlegs框架時,我們需要繼承該類,並實現我們自己的startup函式,當我們建立了context後,startup函式會在初始化後自動執行,我們需要在這個函式裡配置模型對映,事件對映和檢視對映以及新建檢視進行系統初始化,下面是乙個例子:

public

class examplecontext extends

context

override

public

function startup():void

}

actor: model 和 service都繼承自actor。

command: controller由command實現,針對我們需要處理的訊息,我們先定義相應的處理類,並在execute函式中進行處理。然後我們將訊息和相應的command對映起來:

commandmap.mapevent(eventtype:string, commandclass:class, eventclass:class = null, oneshot:boolean = false)

mediator:view層包括view component和mediator,在建立檢視前,我們需要先建立view component和mediator之間的對映:

mediatormap.mapview( viewclass, mediatorclass, autocreate, autoremove );

建立完兩者之間的對映後,當我們新建乙個view component加入stage時,系統自動幫我們新建乙個指定的mediator與之相關聯。

mediator 負責所中介的 view component 發出的事件, 我們需要將訊息和相應的處理函式對映起來:

eventmap.maplistener(mymediatedviewcomponent, someevent.user_did_something, handleuserdidsomethingevent)

robotlegs框架配備了swiftsuspenders來實現它的自動化依賴注入。swiftsuspenders框架的詳細資訊,見文章輕量級ioc框架swiftsuspenders,下面說說這個框架在robotlegs中的應用。

1.在新建context時就進行一些值對映,這樣可以輕鬆的保證一些物件在整個系統中的一致性。

protected function mapinjections():void

2.初始化modal和service時。因為一般這些都有singleton的需求,可以利用injector.mapsingleton來輕鬆實現

3.用injector輕鬆實現新增view component時新建相關聯的mediator。

4.框架使用者也能從中獲利。

讓我們再來回顧一下啟動乙個系統需要做的事:

1.新建context

2.將modal對映為singleton

3.為訊息對映相關的command

4.為view component對映相關的mediator

5.新建view component並加入view list中。

然後的然後,整個系統就跑起來了!

我們不需要為新建的view component建立meditor,系統會在乙個view component加入view list中後,從mediatormap中找出和view component對應的mediator類,並新建相應的mediator。並且會自動的呼叫mediator的onregister函式,將mediator處理的事件加入eventmap中。

我們不需要操心modal的新建,一致性等問題,因為injector幫我們將其對映成了singleton,這樣我們只需要在使用modal的類中加入[inject]注入點就行。

共用的eventmap使得各個部分的通訊更容易,每個層都不需要操心和其他層之間的互動,只需要把自己的事情處理好,其他的事情通過dispatch將訊息發出去讓其他的層處理就行。

joelhooks為robotlegs寫了很多的例子,可以通過看到,我就不贅述了。

Flex框架 Robotlegs學習記錄

最近在用flex4.5開發,學習了robotlegs框架,記錄一下 robotlegs框架原理圖 大體流程 this.mediatormap.mapview userlogin,userloginmediator 對映登入mediator,對映之後,userlogin.mxml元件和userlogi...

web框架簡介,django簡介

目錄django簡介 建立django專案的方式 django各個檔案的作用 django小白必會三板斧 c s架構 客戶端服務端 b s架構 瀏覽器伺服器 本質 b s架構其實也是c s架構 超文字傳輸協議 規定了客戶端和服務端訊息傳輸的格式 四大特性 1 基於tcp ip協議作用於應用層的協議 ...

JAVA SSH 框架簡介

在struts spring hibernate的組合框架模式中,三者各自的特點都是什麼?struts 的mvc設計模式可以使我們的邏輯變得很清晰。spring 的ioc和aop可以使我們的產品在最大限度上解藕。hibernate的當然就是實體物件的持久化了 典型的j2ee三層結構,分為表現層 中間...