• 此三层非彼三层——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的学习还在继续。


    
  • 相关阅读:
    webkit and the browser
    【技术原创】京东商城价格图片分析解析源代码下载(C#),附演示程序 转
    maglev need 64bit linux version
    sed awk
    VMware公司SpringSource部门宣布收购Gemstone Systems公司
    新手?为什么需要关怀?
    【技术原创】京东商城价格图片分析解析源代码下载(C#),附演示程序 转
    【技术原创】京东商城价格图片分析解析源代码下载(C#),附演示程序 转
    C语言正则表达式库pcre介绍
    人工翻译
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5179979.html
Copyright © 2020-2023  润新知