首页 > 代码库 > 此三层非彼三层——MVC&UBD

此三层非彼三层——MVC&UBD

 学习了三年编程了,到现在这个阶段,开始接触架构,开始认识架构,如何设计一个程序的结构,学名称"架构模式"(architectural pattern),个人经历告诉我这在编程中是一门“量到质变”的学问,没有一定的编程经验,是谈不到架构的。不说那么多,我也是刚刚接触,谈谈我认识的两种架构模式。
下面是我对MVC,UBD模式的一些个人理解,不一定正确,主要用来整理思路。

一、MVC&UBD的通用思想——高内聚,低耦合

 不管是UBD 还是MVC ,程序不论简单或复杂,如果从解耦的角度来看三层架构和MVC其实他们是一致的。
 三层:UI 界面层 BLL 业务逻辑层,DAL数据访问层,Model 实体层
 MVC
  M 即Model(模型层),主要负责出来业务逻辑以及数据库的交互
  V 即View(视图层),主要用于显示数据和提交数据
  C 即Controller(控制器),主要是用作捕获请求并控制请求转发
 
 按照设计的原则:依赖倒转的思想,保证这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。
 
 
   
二、MVC简单理解

 MVC是BS 项目中提出的一种模式。是三层的一种。最近一直在做DRP项目,对于MVC的理解也是基于JSP,Servelet ,DAL来理解的。
          首先V 就是view,视图,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。不用过多解释。
 
        其次是Controller,是控制器的意思,所谓控制器,就是将用户请求转发给模型层,经过处理后把结果返回到界面展现的一个中间层,那么Controler到底管什么工作呢?
 先来看看在Java Web中,这三个层一般的定义,一般在Java Web里,JSP充当V,Servlet充当C,JavaBean充当M,这里的Servlet管什么工作呢?接受输入,转到Model层去处理,处理结果保存后转发到JSP,然后展现数据。所以它的功能就是控制器的基本功能,它就管转发,在V和M之间转来转去。
 
         再来说说M,即Model,在Java Web里说的是JavaBean,JavaBean不仅是实体,还包含了业务逻辑和数据库操作的类,这和实体类完全是两回事。包含了业务逻辑和数据访问。
 
 
二、UBD模式和MVC模式的比较

 1、划分:
  三层是基于业务逻辑来分的,而mvc是基于页面来分的。这是通过在DRP中感受到的,servlet是跟JSP紧密相联的。
  
 2、作用范围
 
  三层感觉更像是一种宏观的架构模式三层是一种思想,在此基础上,我们或者可以扩展有四层五层,都是根据业务来进行的变更。MVC 则是处理BS项目中一个应用模式。因为MVC在Model里包含了业务逻辑层,数据操作层,这里的划分其实也是一种三层的缩影体现。
  
 3、头重脚轻
 
 MVC给我的感觉就是这样,这就是需要关注一下Model.“三层”中典型的Model层是由实体类构成的,而MVC里,则是由三层中的BLL,DAL,Model组成的。不一样的概念,虽然名字一样。
 MVC中model的含金量是极高的。
 
 暂时就这些感悟。对于MVC的学习还在继续。