淺談 flash 分工模式 robotlegs MVC

2009-12-12 於 晚上11:21
什麼是mvc呢,在維基百科的定義為
MVC(Model-View-Controller,
模型—檢視—控制器模式)是軟體工程中的一種軟體架構模式。它把軟體系統分為三個基本部分:模型(Model),檢視(View)和控制器(Controller)。

最近筆者在研究 php的mvc,codeigniter以及flash的mvc,robotlegs在之前的專案經驗告訴我,要和其他人共寫一套專案程式是比自己寫還困難,由其在flash裡,屬性,方法,事件,都是可以自由定義,如果沒有事先的溝通,根本就沒辦法共寫,筆者曾經參與雲林科技大學的系所網頁比賽,那時候集合究研所裡的資訊人材和視覺設計人材,都沒辦法完成共寫的目標,現在在公司上班,有時候會遇到很急的案子,卻沒辦法互相share,常常是資料結構拖到視覺設計的進度,視覺設計又拖到程式設計的進度。如何能夠讓資料結構,視覺設計和程式設計同時進行,又能互相交流,mvc是最近程式設計中很流行的方法,也被期待可以解決這樣問題。
先談談flash的mvc,robotlegs,維型軟體架構模式,筆者用了robotlegs實做出幾個專案,以往程式沒辦法切成很完整的mvc,是因為使用了實體名稱,像是
var my_btn:MenuButton=new MenuButton();
my_btn.addEventListener(MouseEvent.CLICK,onClick)
function onClick(evt:MouseEvent):void
{
evt.target.changeColor()//do some thing
}
當MenuButton 被改變時,my_btn也要被改變,實體名稱綁著event (事件),
而robotlegs可以針對class 做操作,加上很多的設計模式(designer pattern)可以運用,像是singleton design pattern(單態模式), Injection design pattern(注射模式), mediator design pattern(調停者模式), command design pattern(指令模式)
…等,幾乎做到完整切割,感覺上真的做到完整的mvc,目前還在測試階段,如果要運用到大型專案,像是整合SWFAddress,FlashSEO…等都還要在測試,筆者會再多運用幾個專案,有心得再來分享。
也歡迎有興趣的朋友一起研究