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