《一
>
概述一、目的:
workerbee是針對使用
flash pro
和純as
開發的中小型專案建立的,目的是提供乙個合理的專案結構,靈活可復用的**,從而提高開發效率,降低一些
bug的出現機率。
簡而言之:結構清晰,靈活可復用,輕量,提高開發效率,降低bug
。二、使用環境:
flash pro和
as開發的專案。
三、針對專案型別
中小型專案,例如:flash
**,互動式應用,小遊戲等。不適用於大型專案(頁遊、企業級管理應用等等)和微型專案(
flash
效果,廣告動畫等)。
大型專案中,對模組化設計,效能表現,ui
庫都有較高和嚴格要求,
workerbee
相對簡單,從而無法勝任。
微型專案中,與外部互動少或者沒有,實際實現**量底,使用框架,會造成冗餘。
四、組成部分:
框架主體有四個部分組成,分別是:
1.顯示層容器物件。
2.interactive互動類物件。
3.service服務物件。
4.events事件物件。
其他附屬結構,包括:
1.ui對像。
2.figure圖形物件。
3.figure圖形樣式資料集合。
4.skin**。
5.vo常用資料集合
6.實用工具
五、設計思路:
框架設計**於mvc
思想,但相對
puremvc
框架和其他一些框架要簡單很多,同時一些部分又有別於
mvc。總體概述為:三層四個部分。
具體分為:ui
顯示層容器部分,
interactive
部分,service
部分,event
部分。許可權:為了規範各個部分的責任和功能,保持清晰的結構,引入了許可權的概念。表現為一些物件只能由特定的物件去建立和訪問,許可權的級別不同,能夠建立和訪問的物件不同。高階別的物件可以直接或者間接控制低級別物件的公開方法和執行中的作用。低階別的物件只能控制自己或者訪問更低物件的介面,能夠通過事件上報高階物件加以影響,但不可以直接呼叫高階物件。事件的傳輸也遵循許可權規則。乙個部分中下級物件可以通過事件向同一部分的高階物件反映狀態情況,但一般不可以向其他部分傳送事件。
1.ui顯示層容器部分
ui顯示層中的容器型別、
document
型別主要完成構建專案介面,提供對顯示列表中物件的控制。通過
interactive
和服務物件進行互動,參與流程的控制。
容器類是許可權較高的類(document
類算作根級容器,因此他的許可權在框架中最高),他可以直接調動子容器和
ui物件的公開方法,操作屬性實現互動過程中的顯示行為,並在合適的時候通過
interactive
間接調動服務層,實現資料互動。在一些小型專案中,當
interactives
省略時,可以直接操作服務層。
容器類的主要任務是操作顯示列表,調動各個需要的容器類,以及在合適的時候通過interactive
類與服務層互動,完成互動任務。
在顯示列表中,顯示物件按照父子級關係建立,本身具有一定的耦合性,如果拋開這種關係,通過外部獨立控制層進行管理,會使結構趨於複雜(對中小型專案而言),耦合性管理和訊息的傳輸的把控難度加大。所以利用根級容器和核心容器同其他顯示物件的天然聯絡建立資訊傳輸和流程控制,有現成的通道可以利用。並且父級容器直接操作子級容器,子級容器通過事件上報父級容器,可以降低記憶體溢位出現的機率。
ui中的非核心容器和其他顯示部分完成一般顯示物件的任務,例如展示資料,動畫效果,介面樣式和基本功能。
2.interactive部分
interactive部分是許可權次於容器類的邏輯層,他主要負責協同容器類特別是文件類與服務層互動,並且將獲取的資料進行處理,分派,對流程加以控制。
interactive類可以調動想要調動的服務層類的開放介面,並接收服務層返回的資料。通知容器類該如何操作以更新顯示層的狀態。但是,互動類不能直接獲得顯示列表中物件的引用,雖然高階的互動類持有文件類或根級容器的引用,但不推薦通過該引用直接操作顯示列表中的物件,可以使用
event
interactive
,只有容器型別和文件類型別才可以建立。
如果說框架有控制層,那分別是由根級容器類,子級容器類和互動類構成,容器類完成顯示層的控制,互動類完成模型層的控制,容器類直接同互動類溝通,互動類通過事件提醒容器類要做什麼,對執行流程加以控制。容器類可以直接建立互動類,互動類不能直接使用容器類的引用。因此,互動類的許可權低於容器類。
對於中小型專案,mvc
三層結構尤其是
puremvc
過於複雜了,會造成很多冗餘**,即邏輯**沒有框架**多,而且理解不透或使用不當,反而造成結構不清晰。但是沒有控制層,單純由根級或核心容器類兼任控制層的任務,又許可權過高,造成控制顯示層的方法與控制模型層的方法相互交錯,不利於維護。同樣邏輯判斷和流程控制都集中在某個或幾個模型類中,會造成他的許可權過高,針對性增強而復用性降低。因此建立
interactive
提供了一種選擇。他具有服務類處理資料的許可權又有控制流程的能力,但是卻沒有直接控制顯示層的許可權,只有溝通和提醒的權力。通過它和核心容器類相協調,共同完成控制的任務,可以降低容器類的許可權,集中資料和流程的控制。達到結構清晰不推高耦合性的目的。
3.service部分
service完成類似
mvc中
model
層任務,他也是經常建立和使用
vo的部分之一。
請求,獲取
flashvars
,和js
互動,載入本地資源,檔案,和
swf等。也可以做一些資料處理儲存,為流程控制提供資料等任務。建立
service
類同樣需要許可權,只用容器類,文件類,互動類可以直接建立服務類。
service的重點在於提供而不在於控制。可以建立用於加工資料和資源的類以及功能,並且按照流程中的時間點提供資料,但是不應對流程的管理加以影響。就是說,可以報告給互動類和容器,哪些任務完成了哪些沒完成,讓他們對情況加以處理,但是不能由
service
發出指令來讓系統進行哪一步操作。
4.events事件部分
event部分負責在
3個主要邏輯部分中傳遞資料和訊息。
容器類,互動類,服務類以及顯示物件之間傳輸資料主要依靠事件(event
)部分,他由一些不同型別的事件類和乙個單例的事件**者構成。事件的傳輸和傳送需要遵循一定的規則。例如:處於同一顯示列表中的顯示物件,子級可以通過事件與父級互動,也可以向更高階乃至根級傳送事件,但不可以直接操縱父級屬性和引用,也不可以發事件給服務類和互動類,除非是屬於顯示列表中的核心容器(不一定是根級容器)。
事件**者主要用於在三層之間做一些必要的間接互動工作,他的建立也收到許可權的控制。只有容器類,文件類,互動類,服務類可以建立**者。其中互動類和服務類必然含有事件**者,容器類不一定要建立**者,但是,文件類應當含有**者。事件**者可以有效的在三層之間建立溝通關係,並且是鬆散耦合的。但是過度的使用**者卻是不可取的,因為一方面他是單例模式,乙個與某次互動不相關的物件卻可以通過它來接受事件是不對的。另一方面,過多的類使用**者破壞了原有層級的上報機制,加強了系統結構中相距較遠的物件之間的關係,間接推高了耦合性。不利於維護和擴充套件。
六、圖形、樣式和**
圖形,樣式和**主要是對ui
包中的顯示物件進行修飾用的。
圖形包提供了一些物件和方法進行圖形繪製,他利用樣式包中提供對應樣式引數,使用as3
繪圖api
進行繪製。
樣式包提供了許多樣式物件,本質類似於資料集合物件(valueobject
),物件中沒有方法,只有各種屬性用來儲存與顯示狀態有關的值和物件。
**包是對樣式物件的組合定製。可以使用**的ui
元件都有乙個
skinclasspath
和skin
屬性,用來指定使用的**檔案。檔案中包含了
ui元件中用到的顯示物件的樣式設定和對特定物件的設定(例如:在按鈕中的**檔案中有屬性標識是否使用文字框,即按鈕中的
label
,對於容器來說,**中有標識決定是否使用背景圖)。
ui物件使用**,**定製樣式設定,樣式中的引數用於計算和渲染外觀用到的圖形物件。這就是幾個物件之間的關係。
七、valueobject
物件vo物件是框架中重要的組成部分,他提供的一些類中包含很多屬性和少量方法(不推薦
vo中含有大量和複雜處理資料的方法,這些應該交給服務類和互動類來做)。容器類,互動類和服務類之間交換大量資料或者特定資料時都是用
vo包中物件。推薦在具體的專案中,三個邏輯層之間遇到類似
object
資料時也使用
vo物件(建立乙個特定的
vo)。
八、實用工具
實用工具提供了一些和主體設計無關,但在開發中提供便利的工具類,比如顏色分解合成,以及其他特殊演算法集合等檔案。
php yii框架 目錄說明
yii框架說明 版本1.x yiiframework架構下的所有應用都由物件例項驅動完成,完全是純oo程式設計。其中最基礎,最核心的是ccomponent類,了解ccomponent的用途和設計思想是認識yiiframework的基礎中的基礎。yiiframework架構下的所有應用都由物件例項驅動...
Hibernate 框架配置說明
www.hibernate.org www.mysql.com hibernate 配置檔案,可以使用 properties 屬性檔案,也可以使用xml 檔案配置,下面使用xml 檔案配置 配置檔案結構如下 hibernate hibernate configuration dtd 3.0 en 屬...
後台框架文件說明
後台框架文件說明 該框架使用ssm,整合阿里巴巴druid資料庫連線池,許可權框架使用shiro,另外配套使用jdk1.8,mysql5.6,tomcat9。可以作為企業內部oa,也作為遊戲客服後台使用,具體作用取決於您的目的。結構比較淺顯易懂,在這裡就不多說了。許可權角色管理 可針對不同使用者所需...