MVC

1>基本知识:

MVC模式把软件系统分为三个基本部分:

View:视图,用户界面。它只是作为一种输出数据并允许用户操纵的方式。

Controller控制器,业务逻辑。接受用户的输入并调用模型和视图去完成用户的需求

Model:模型,数据保存

所有通信都是单向的。每一部分都相对独立,职责单一,在实现过程中可以专注于自身的核心逻辑。

2>MVC的优点

1.低耦合性
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
2.高重用性和可适用性
例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。
3.较低的生命周期成本
MVC使开发和维护用户接口的技术含量降低。
4.快速的部署
使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
5.可维护性
分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
6.有利于软件工程化管理
由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。

3>缺点

1.视图与控制器间的过于紧密的连接

视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

2.视图对模型数据的低效率访问

依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

3.不太友好的单元测试

特别是App上做单元测试的时候很多东西依赖与系统框架,没法脱离用户接口来试这些逻辑单元.

4>实例

例如 需要给一个页面上的button注册一个onclick事件。

符合MVC框架的实现:(view、mode和control完全分离)

view视图的view.html代码:

<html>
<head>
<title> example </title>
</head>
<body>
<input type="button" value="baidu" id="baidu"/>
</body>
<script src="model.js"></script>
<script src="control.js"></script>
</html>

实现control控制功能的control.js代码:control.js的代码就是实现html页面节点事件的注册。使得节点的各种事件知道会触发什么函数去执行。

function G(id){
     return document.getElementById(id);
 }
var UI = new Object();
UI.register = function(id,even,fun,arr){
     if(G(id)) 
     G(id)["on"+even] = function(){ 
         fun(arr);
     };
}
UI.register("baidu","click",tipInfo,[1,2]);

具体的函数操作,可以放到model模块中执行,在model中,才是真正处理逻辑操作

function tipInfo(arr){
     alert(arr[1]);
     //实现其他组件功能,例如popup、form等。都属于model模型
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值