刚刚学习了三层架构,并且正在实际应用中,但随着学习的深入,又了解到了一个叫MVC的东西,(早在设计模式中就听到过MVC,仅仅是简单查了一下什么意思.)如今正好把这三个东西放在一起聊聊.

三层

是一个分层式的软件体系架构设计,它可适用于不论什么一个项目。

它是从整个应用程序架构的角度把程序分为三层UI层,BLL层,DAL层(当然假设程序须要,还能够分多层)。

三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序猿更加专注的处理某阶段的业务逻辑。

比方将数据库操作代码封装到一层中,提供一些方法依据參数直接返回用户须要的对应数据,这样在处理详细的业务逻辑的时候。就不用关心数据的存储问题了。

详见

http://blog.csdn.net/u010028869/article/details/24711163

MVC

全名是Model ViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范。

它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。

它们各自处理自己的任务。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。

通常视图是根据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分。

通常控制器负责从视图读取数据。控制用户输入。并向模型发送数据。

MVC
分层有助于管理复杂的应用程序,由于这能够使我们在一个时间内专门关注一个方面。

比如,能够在不依赖业务逻辑的情况下专注于视图设计。同一时候MVC也使应用程序的測试更加easy。

MVC和三层架构是不同的

(就表面知识来说)

三层架构是界面层(UI)业务逻辑层(BLL)和数据訪问层(DAL)构成的,而MVC是模型层(M)界面层(View)和控制层(Controller)构成的,并且他们之间也不是一一相应的.

假设硬要给他们相应的话,那么三层架构中的UI相应MVC中的view(jsp),都是用于显示以及获取界面的数据;三层架构中的BLL层和DAL层相应MVC中的Model(javabean)层都是用于处理上层传递来的数据以及从数据库获取的数据的。MVC中的Controller(Servlet)最多算是三层架构中的UI的一部分,也就我们常说的是Servlet。

例如以下图所看到的:

MVC和三层架构是同样的

(就他们的目的来说)

先驱们为什么会设计出MVC和三层架构呢?它们有这一个共同的目标!----分层。解耦!

从解耦的角度来看三层架构和MVC事实上他们是一致的,仅仅只是划分的方法不一样罢了。

这像馒头和面条。表面上看他们不一样可是他们核心是一致的,都是面……

三层&MVC与设计模式的较量

首先MVC不是设计模式,它同三层一样都是架构级别的,是一种架构模式.

MVC框架与设计模式尽管相似,但却有着根本的不同。

设计模式是对在某种环境中重复出现的问题以及解决该问题的方案的描写叙述,它比框架更抽象;框架能够用代码表示,也能直接运行或复用。而对模式而言仅仅有实例才干用代码表示;设计模式是比框架更小的元素。一个框架中往往含有一个或多个设计模式。框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。

总而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧。对详细问题提出解决方式,以提高代码复用率,减少耦合度。

尽管MVC的学习还没開始,先提前接触下,有什么错误的地方请指正!

三层架构与MVC & 设计模式的较量的更多相关文章

  1. 一、JSP九大内置对象 二、JAVAEE三层架构和MVC设计模式 三、Ajax

    一.JSP九大内置对象###<1>概念 不需要预先申明和定义,可以直接在jsp代码中直接使用 在JSP转换成Servlet之后,九大对象在Servlet中的service方法中对其进行定义 ...

  2. 关于三层架构与MVC的一些理解

    刚毕业的时候,参与了一个上位机的系统开发.上位机所使用的是.net Windows Form技术. 当时,和一个北理的姑娘在一个项目组里.因为她来公司时间比较长,而且经验比较丰富,所以,上位机的架构由 ...

  3. 三层架构与MVC之间的区别

    文章转发自:http://www.admin10000.com/document/535.html 我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念.下面我来为大家揭晓我所知道的一些真 ...

  4. 三层架构和MVC模式

    目录[-] 1.三层架构 2.MVC 2.1 标准的MVC(Model-View-Controller) 2.2 Web MVC 3.三层架构和MVC的区别与联系 1.三层架构 三层架构(3-tier ...

  5. 三层架构与MVC的区别

    我们平时总是将混为一谈,殊不知它俩并不是一个概念.下面我来为大家揭晓我所知道的一些真相. 首先,它俩根本不是一个概念. 三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目. MVC是一个设 ...

  6. 三层架构和MVC

    注:本文章内所有内容都来自互联网,本人主要是起了一个收集的作用 http://www.cnblogs.com/zhhh/archive/2011/06/10/2077519.html 又看到有人在问三 ...

  7. Web项目的三层架构和MVC架构异同

    http://www.cnblogs.com/zhhh/archive/2011/06/10/2077519.html 又看到有人在问三层架构和MVC的关系,感觉这种问题有点教条化了.因为它们都在逻辑 ...

  8. [1] [转]软件架构之三层架构和MVC的关系

    注:本文章内所有内容都来自互联网,本人主要是起了一个收集的作用 又看到有人在问三层架构和MVC的关系,感觉这种问题有点教条化了.因为它们都在逻辑上将应用程序划为三块,凑了一个数字3,就有人非要把它们联 ...

  9. (转)浅析三层架构与MVC模式的区别

    MVC模式介绍: MVC全名是Model ViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据 ...

随机推荐

  1. VS2013_QT255开发相关技巧理解心得

    1. 在VS2013中打开QTCreater新建的项目 (1)通过双击.ui 打开QT的设计器,然后修改. (2)通过QT设计器,新建ui文件,放在VSQT的工程中 但是需要对此xxx.ui文件,进行 ...

  2. 【整理】-- C++ 多线程

    os:ubuntu   c++ 1.创建线程 #include <iostream> #include <pthread.h> //多线程相关操作头文件,可移植众多平台 usi ...

  3. AngularJS-Controller的使用-读书笔记

    最近在读<Angular JS权威教程>读到第9页,按着示例做,居然报错,说MyController undefined,初学者不懂啊,找了个官方的文档,按着改了一下,貌似成功了,有需要的 ...

  4. Nmcli 网络管理命令行工具基础

    介绍 在本教程中,我们会在CentOS / RHEL 7中讨论网络管理命令行工具NetworkManager command line tool,也叫nmcli.那些使用ifconfig的用户应该在C ...

  5. 从RTSP协议SDP数据中获得二进制的SPS、PPS

    在RTSP协议的交互过程中,第二步客户端发送DESCRIBE请求之后,服务端会返回SDP内容,该SDP内容中有关于媒体和会话的描述,本篇文章主要给出如何从SDP字符串中得到H264视频信息中的sps. ...

  6. 【Leetcode】【Hard】Merge Intervals

    Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...

  7. 动手写一个Remoting接口测试工具(附源码下载)

    基于.NET开发分布式系统,经常用到Remoting技术.在测试驱动开发流行的今天,如果针对分布式系统中的每个Remoting接口的每个方法都要写详细的测试脚本,无疑非常浪费时间.所以,我想写一个能自 ...

  8. 转:DataSet、DataTable、DataRow、DataColumn区别及使用实例

    DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的 ...

  9. Java面试题(1)

    1.编写一个程序,将d:\java 目录下的所有.java 文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad. import java.io.File; import j ...

  10. 服务器端json数据文件分割合并解决方案

    问题引入 Json 是什么就不多说了,本文把Json理解成一种协议. 印象之中,Json貌似是前端的专属,其实不然,服务器端组织数据,依然可以用Json协议. 比如说,某公司有一套测评题目(基于Jso ...