rexian

咨询电话:023-6276-4481

热门文章

联系方式

电 话:023-6276-4481

邮箱:broiling@qq.com

地址:重庆市南岸区亚太商谷6幢25-2

当前位置:网站首页 > 技术文章 > 三层架构与MVC的相似和不同

三层架构与MVC的相似和不同

编辑:pansiqin 发表时间:2017-12-13 13:55:26
pansiqin

作者:刘彦彬
链接:https://www.zhihu.com/question/21851341/answer/251629127
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

MVC 模式

产生背景:
对用户界面进行管理的程序的职责混乱导致代码难以维护。

解决方案:
将对数据的操作 M 与对视图V的操作分离开,用C 逻辑作为二者的粘合剂。

3-tiers 架构

产生背景:
所有应用程序都是用来处理数据的,程序的入口数据可以通过接口交互式输入或者从磁盘等地方读取,程序的输出结果作为现实或存储在磁盘上。上世纪九十年代之前,除了大型的系统外,应用程序读取处理并存储数据都是在一台机器上进行的。但是,从九十年代起,由于数据的爆炸性增长,一台机器上可以存储的数据不能满足应用程序的需求。于是,人们对原有程序进行了水平分层,将数据分离到数据库服务器上,应用程序从网络上读取数据。这就是 2-tiers 架构,客户端应用程序和数据库服务器。这种架构依然存在一些缺点,例如,无法缓解支持很多应用程序的客户端的负载; 客户端越来越复杂;  客户端和服务器之间频繁的通信对带宽要求高,限制了网络的大小等。
总的来说就是,由于原有业务的复杂度提升,客户端和服务器端的职能需要调整,从而实现负载均衡,使系统具有良好的伸缩性。

解决方案:
客户端的应用程序用于展示,是展示层,业务层进行逻辑运算的支持,数据层存储和操作数据。由于这种架构对原有程序进行了分层,不同的层运行在不同的机器上,所以可以非常自然地支持分布式开发。

联系:
- 初看起来比较像,容易搞混(如果这也算联系的话);

-  MVC 模式可以用于3-tiers 架构的展示层。

区别:
关注的重点不同:
MVC 关注的重点在于表现层的代码组织方式,通过降低代码间的耦合度,使代码更改维护。
3-tires 关注系统的分布,便于提升系统性能,增加系统功能。

拓扑结构不同:
MVC 是可以三角结构,视图向控制器发送更新,控制器更新模型,视图可以直接从模型更新。
3-tires 一定是是线性结构,展示层即客户端不能直接与数据层通信,也就是说客户端展示层与数据层的通信必须经过中间层即业务层。