在C/S阶段的时候,我们接触和深入学习过三层架构,再次我就不再对三层架构进行概述了.MVC一种混合模式,它不是一个新的内容,在三层架构和设计模式学习的时候我们都有接触过,那个时候仅限于知道的阶段. # P- X1 p0 ^9 f
一.MVC概述 M(模型,model):表示系统的业务逻辑,包括数据和业务上的规则,操作,在MVC模式中,模型是要实现系统的核心功能,为视图提供数据,供其他部件调用,对系统的功能起到封装的作用,以提高程序代码的可复用程度. V(视图,view):是系统的外观表现,是系统与用户交互的界面.在视图中不进行业务处理,只是简单的显示和向模型或控制器提交数据,发送处理请求,在得到处理结果后显示出来,这样就将显示与处理这两种类型的功能区别开来,使程序代码具有良好的层次性和可复用性. C(控制器,Controller):提供对系统处理过程的控制,对用户的输入做出响应,创建并设置模型中的属性,对输入的数据做出校验,更加客户端提出的请求,选择合适的模型来处理业务逻辑,再将数据返回给视图.可见,控制器就相当于一个调度中心和数据处理的中转站.
+ m8 D* t N- p 二.MVC基本设计思想
" K: {( s( N/ K. v
_7 S) \$ ~: G$ f8 U- n MVC模式在实现时把"做什么(业务处理)"和"怎么做(业务实体)"进行了分离,使得开发人员的分工可以更细,业务逻辑可以重用.视图则在一般情况下只接受来自于模型的数据并显示给用户,以及将用户输入的数据提交给模型或者控制器, * u' I7 Z2 x6 o1 D: O8 V
三.MVC的好处
/ a2 g+ U5 N# ]+ J9 p7 }2 o9 m# `/ @' {1 t
1.低耦合性 视图和模型的分离,实现了数据显示处理和业务处理逻辑的分别实现,相互之间影响程度较低,改变业务的处理的逻辑可以不变更数据显示的逻辑,数据表现的不同形式也不会影响到业务逻辑的处理.
: ]1 }% S' n6 g 2.高复用性 比如不同表现的客户端可以共用业务处理逻辑代码,一个web应用系统的核心功能用组件完成之后,表现的客户端可以用无限浏览器,也可以用web浏览器.这样不局限与客户端的显示.而核心功能部件是一样的. ! q. ]0 A, h' R3 K" G3 v: |
; ~5 e: u, P7 }( E' n
四.MVC和三层的区别. w8 Y. s: k r$ {/ o+ W+ q
! e2 {# c5 ~; C8 o
1.两者不是一个概念 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。MVC是一个设计模式,它是根据项目的具体需求来决定是否适用于该项目。我们不单单要说三层架构和MVC模式的区别,我们来看看架构和模式的区别,那就从我们接手一个项目开始: 首先,我们需要进行架构设计,一般我们采用的就是分层式的架构设计,即我们的三层架构。 然后,在确定了架构以后,我们再根据项目的具体需求去考虑是否需要应用一些设计模式,比如是否应用我们的MVC模式,抽象工厂模式等等。 最后,确定了模式以后,就是我们的一些具体的实现了。 使用架构和模式的目的都是:解耦.但是使用模式是为了让项目变得更加的灵活,写最少的代码,做的做多的事情. % l' f8 g$ b I* ?* d7 r; i. g
0 C9 F6 A* u7 U! c' P5 t2.划分层次不同 三层架构将整个项目划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL),是基于业务逻辑来划分的. MVC即Model(模型),View(视图),Controller(控制),是基于页面来划分的. 他们之间的关系如下: / q# r6 _) \7 E/ Y
$ d! ]% P5 q5 k: S6 _4 I: C, z, Z
* d2 H* S* p/ o- @5 d- F! ] I
3.侧重点不同
1 |8 R; q/ s- C! C- x) A9 { 三层架构的目的着重点是“高内聚,低耦合”,即解耦。MVC的目的则是实现Web系统的职能分工,即职责划分。其实职责划分也是解耦,但是三层侧重的是整体的一个解耦,而MVC侧重的是web系统的解耦,即侧重jsp和Servlet的一个解耦。
5 J* b9 h, ~' C+ k/ g3 W4 Z$ O五.混为一谈的原因 1.二者都是"三层"
0 a/ ~# |: R' c+ [: W' |
2.MVC总是伴随着三层架构 % ^) |* ^/ W) \7 c/ l5 z* I
3.都是在分层,即都是在解耦 9 `1 q. x; G: ^) `- ~6 N! Z' T
% r! i9 W+ Q' |
六.总结 不管学习三层还是学习MVC模式,我们需要学习的时候它的思想:解耦---高内聚低耦合.学习的时候,学会怎么用固然重要,但是把知识结合起来,学习其中的思想和精髓才是最重要的.无论什么东西,都是由理论来支撑和引导的.其中国的经济也不例外. |