论坛首页 Web前端技术论坛

JavaScript 面向对象 之 一个基于MVC的实现绝对非框架 [原创]

浏览 2520 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-09   最后修改:2009-06-11

作者:Topcss QQ E-mail andpai1.0@gmail.com 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 之路越走越远,越走越稳!

 

希望大家跟帖讨论,如你的看法和思路,或者对上面提到的这个模式的评价,或者她对你的启发,或者其它。

 

大家踊跃讨论,跟贴无罪!

 

   发表时间:2009-03-09  
如果eclipse对js 的支持能像支持java一样  那该有多好 
0 请登录后投票
   发表时间:2009-03-09  
mazzystar 写道
如果eclipse对js 的支持能像支持java一样  那该有多好 

如果有人愿意购买,我想应该会有团队去开发eclipse的插件的。
0 请登录后投票
   发表时间:2009-03-09   最后修改:2009-03-09
topcss 写道

作者:Topcss QQ419074376 E-mailandpai1.0@gmail.com Time2009-03-08

刚刚在看 JavaEye新闻月刊 - 20091 - 总第11期 时,看到了个居然有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)也不能做到,在我们程序达到一定的量(如:上千行)后还能正确的指出错在那里。不易调试的确一个大问题啊!

 

#############  调试的话,apanta,firefox,chrome都可以

               当然,最好的还是vs.net带的脚本调试器,无比强大

 

 

框架的出现,为我们的设计带来了方便,调试工具的出现让我们的调试跟轻松。

 

在这里,我希望大家都来积极参与JS的学习,讨论和设计中来,并提出一些独创性的观点。让我们的JS之路越走越远,越走越稳!

 

希望大家跟帖讨论,如你的看法和思路,或者对上面提到的这个模式的评价,或者她对你的启发,或者其它。

 

大家踊跃讨论,跟贴无罪!


1、 MVC被吵烂了,真的

2、 没觉得lz的代码有啥

3、 投了新手贴

0 请登录后投票
   发表时间:2009-03-09  
mazzystar 写道
如果eclipse对js 的支持能像支持java一样  那该有多好 


做js开发的话,可以用apanta
或是eclipse插件:spket,jseclipse~~
0 请登录后投票
   发表时间:2009-03-10  
topcss 写道

作者:Topcss QQ419074376 E-mailandpai1.0@gmail.com Time2009-03-08

刚刚在看 JavaEye新闻月刊 - 20091 - 总第11期 时,看到了个居然有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之路越走越远,越走越稳!

 

希望大家跟帖讨论,如你的看法和思路,或者对上面提到的这个模式的评价,或者她对你的启发,或者其它。

 

大家踊跃讨论,跟贴无罪!

 

  JS现在在JDK6里面可以开发桌面系统,把JS作为宿主语言使用Java类库。

 

   PS:在你实现JS-MVC的时候,请注意OOP的封装,比如你的Count类,里面的成员a,b都是public的。

0 请登录后投票
   发表时间:2009-03-10  
dotaking 写道
mazzystar 写道
如果eclipse对js 的支持能像支持java一样  那该有多好 


做js开发的话,可以用apanta
或是eclipse插件:spket,jseclipse~~


正在用apanta的eclipse插件,感觉还可以 不过还是没有写java爽啊 ,差太多了
0 请登录后投票
   发表时间:2009-03-10  
mazzystar 写道
如果eclipse对js 的支持能像支持java一样  那该有多好 

MyEclipse7.0已经支持js的调试了,虽然还是beta版,但是很好用
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics