JavaScript 面向對象 之 一個基於MVC的實現絕對非框架 [原創]

作者:Topcss QQ E-mail [email protected] Time -03-08

 

剛剛在看JavaEye 新聞月刊- 2009 年月- 總第期時,看到了個居然有JS 基於MVC 實現的框架,由於不能上網( 文檔是昨天下午下載的) ,於是決定自己動手寫一個JavaScript-MVC

 

在這之前我們要先了解MVC 究竟是什麼東東!

 

1.M(Model) 模型-- 這裏用來保存對象

 

2.V(view) 視圖-- 用來顯示

 

3.C(controller) 控制-- 用來做核心的邏輯處理

 

我們來寫個基於MVC 的計算器吧!

 

先在我們習慣的編輯器中寫如下代碼

 

 

< html >

< head >

< title > JavaScript 面向對象 之 一個基於MVC 的實現</ title >

< script language ="javascript" type ="text/javascript">

</ script >

</ head >

< body >

</ body >

</ html >

下面我們開始在script 標籤內編碼:

 

第一步,我們創建一個實體對象( 它屬於model 模型層範疇)

var Count = function (){

this .a = 0;

this .b = 0;

}

 

 

第二步,我們創建一個處理類( 它屬於controller 控制層範疇)

 

 var Controller = function (){

this .add = function (Count){

return Count.a + Count.b;

};

this .minus = function (Count){

return Count.a - Count.b;

};

this .multiply = function (Count){

return Count.a * Count.b;

};

this .divide = function (Count){

return Count.b == 0 ? 0 : Count.a / Count.b;

}

}

第三步,調用計算的方法( 它屬於view 視圖層範疇)

var num = new Count();// 得到表單運算的實體

 

num.a = 150;// 當然,這裏的值我們可以通過表單輸入得到

 

num.b = 20;

 

var con = new Controller();// 得到控制層計算方法的實例

 

var result = con.minus(num);// 調用減法運算,參數爲表單實體

 

alert(result);// 打印程序運行結果

不得不承認,在語法上面的確沿用過去我們熟悉的老寫法。但從思想的層面上講,卻有了較高的提升。很明顯,這麼寫的好處和JAVA 或者其它語言一樣,把代碼模塊化,讓代碼結構更清晰,讓別人也能輕鬆的讀懂你的代碼。

 

JavaScript 由剛開始在我們的項目中出現一些零星的驗證到Ajax 應用,現在她已經成爲我們在Web 應用程序中必不可缺的語言了。

 

這些年也出了不少不錯的JS 框架。我們也都很期待更多的JS 框架的出現。因爲,它不僅意味着JS 的重要性,而且會讓我們在以後的開發中更加簡單的應用JS 技術。

 

不過,話又說回來。這些模式或者框架的出現,也說明JS 的本身也存在着先天的不足。

 

最大的缺憾就是,目前它只能應用於Web 開發,和一些簡單桌面開發,而且都需要得到其它應用程序的支持。

 

再者,對於不同的程序( : 不同瀏覽器,就算主流的瀏覽器[Firefox || IE || All] 也一樣) 解析也會不盡相同。這會大大影響我們的開發進度。你可能會想到框架。嗯,不錯,一些框架已經幫我們做了部分兼容,但試問,在你的開發中又真正的用到到多少JS 框架技術呢?對於一些普通的學習者來說,他們更不想依賴於框架。

 

衆所周知,JS 調試也是一個大問題。目前常用的一些調試工具( DeBug) 也不能做到,在我們程序達到一定的量( 如:上千行) 後還能正確的指出錯在那裏。不易調試的確一個大問題啊!

 

框架的出現,爲我們的設計帶來了方便,調試工具的出現讓我們的調試跟輕鬆。

 

在這裏,我希望大家都來積極參與JS 的學習,討論和設計中來,並提出一些獨創性的觀點。讓我們的JS 之路越走越遠,越走越穩!

 

希望大家跟帖討論,如你的看法和思路,或者對上面提到的這個模式的評價,或者她對你的啓發,或者其它。

 

大家踊躍討論,跟貼無罪!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章