pureMVC生手回

看到最近發熱的pureMVC,最近才勉強覺得可以了解一下。
先說明!以下的介紹,純個人的觀點想法,如有誤導的情況的話,歡迎高手指正。




在說明pureMVC之前,先說明他是一種設計模式,也就是讓程式設計師
開發程式時,有互相溝通的"遊戲規則"。
訂下了所謂的遊戲規則後,就比較不會有你寫你的,我做我的,最後你做啥我看不懂,
你寫啥,我接不下來的問題。
要讀別人的程式碼,是很多人的痛吧..!

那pureMVC是就建立在MVC模式下的改良型,說改良型也不太對,應該是適合某些合適的開發語言上的型式。
有高手指正過,MVC不算是個設計模式,它是設計模式的"組合"。

先不論這些規則,就單純用pureMVC的想法來說,小弟只想單純的在開發語言時,
可以讓某些人先做"一部份"的程式,比如在接資料端由一個程式來實作,而呈現視覺資料又由另一個程式人員來開發,而不用將工作都"積"在一個工作人員身上。

這也就是為什麼流程化程式在初期開發時雖然很順手,因為相對有時候小型的專案,流程化的程式反而code少,開發速度也快。但遠程來看,這種流程化程式,幾乎都只能一次應用,很難擴展。也很不適合在大型專案上,而不用提多人合作開發的可能了。

所以設計模式的原則中,有一個概念就是OCP(The Open-Close Principle)原則,簡的說就是對於程式的擴充是開放的,對更改是封閉的。簡單的程式也許用簡單的流程就做的到,但當客戶祭出一字"改"時,那還不如我們早早就準備了它的彈性存在。

不可免俗的,要來放這張圖:










PureMVC 結構說明

望詞生意,當然就是在MVC的模式下來運做整個程式的。
M=Model就是處理資料的部份
V=View負責呈現視覺的部份
C=Controller控制、邏輯運作

架構在這三者的基礎下,再由其它Proxy(Model相關) 、Mediator(View相關)、Command(Controller相關) 來工作。

在最開始的時候,我們必需建立一個獨體模式的類-Facade,由Facade來控制核心的溝通唯一接口。也就是由Facade來串起Proxy ,Mediator, Command的溝通。
ApplicationFacade.as:
package com.me.myapp 
{ 
import org.puremvc.as3.interfaces.*; 
 import org.puremvc.as3..patterns.facade.*; 
 
import com.me.myapp.view.*; 
import com.me.myapp.model.*; 
import com.me.myapp.controller.*; 
 

public class ApplicationFacade extends Façade implements IFacade 
{ 
public static const STARTUP:String               = "startup"; 
      
public static const LOGIN:String                   = "login"; 
      
public static function getInstance() : ApplicationFacade  
{ 
                 
if ( instance == null ) instance = new ApplicationFacade( ); 
                 
return instance as ApplicationFacade; 
                } 
   
override protected function initializeController( ) : void  
                { 
                 
super.initializeController();                           
 registerCommand( STARTUP,  StartupCommand ); 
registerCommand( LOGIN,  LoginCommand ); 
registerCommand( LoginProxy.LOGIN_SUCCESS,  
GetPrefsCommand ); 
                } 
public function startup( app:MyApp ) : void  
                {           
sendNotification( STARTUP, app ); 
                } 
        } 
} 
 

留言

這個網誌中的熱門文章

Flash CS4有夠慢!