MVC和三层架构区别

本文详细阐述了MVC(Model-View-Controller)设计模式与三层架构(表现层UI、业务逻辑层BLL、数据访问层DAL)的概念、区别与联系,通过对比分析帮助读者更好地理解两者在软件开发中的应用。

一、MVC

M:(Model)  模型  :  应用程序的核心功能,管理这个模块中用的数据和值;

V(View )视图:   视图提供模型的展示,管理模型如何显示给用户,它是应用程序的外观;

C(Controller)控制器: 对用户的输入做出反应,管理用户和视图的交互,是连接模型和视图的枢纽。


1.1 MVC如何工作

MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
视图V
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash像XHTMLXML/XSLWML等一些标识语言和Web services.
如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型M
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器C
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。


1.2为什么要使用 MVC
大部分Web应用程序都是用像ASP,PHP,或者CFML这样的过程化语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用程序需要一些额外的工作,但是它给我们带来的好处是无庸质疑的。
首先,最重要的一点是多个视图能共享一个模型,正如我所提及的,现在需要用越来越多的方式来访问你的应用程序。对此,其中一个解决之道是使用MVC,无论你的用户想要Flash界面或是 WAP 界面;用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开,所以你可以最大化的重用你的代码了。
由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。例如,很多数据可能用HTML来表示,但是它们也有可能要用Macromedia Flash和WAP来表示。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。
因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层和业务规则。如果你想把你的数据库从MySQL移植到Oracle,或者改变你的基于RDBMS数据源到LDAP,只需改变你的模型即可。一旦你正确的实现了模型,不管你的数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松偶合的构件。
对我来说,控制器的也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户


1.3 MVC的缺点
MVC的缺点是由于它没有明确的定义,所以完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。
你将不得不花费相当可观的时间去考虑如何将MVC运用到你的应用程序,同时由于模型和视图要严格的分离,这样也给调试应用程序到来了一定的困难。每个构件在使用之前都需要经过彻底的测试。一旦你的构件经过了测试,你就可以毫无顾忌的重用它们了。
根据我个人经验,由于我们将一个应用程序分成了三个部件,所以使用MVC同时也意味着你将要管理比以前更多的文件,这一点是显而易见的。这样好像我们的工作量增加了,但是请记住这比起它所能带给我们的好处是不值一提。
MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。


二 、三层架构

三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了高内聚,低耦合的思想。
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。 

表现层实现的代表作品是Struts框架,业务层实现的代表作品是Spring,持久层实现的代表作品是Hibernate。 
举个例子。
持久层从持久库中取出-10。
业务层按照一定的逻辑(这里我们举例取温度的逻辑)翻译成-10摄氏度。
表示层显现给用户“哎呀,今天好冷!”。
层就相当于一个黑盒子,我们不用知道它内部怎么实现,只需要知道如何去调用它就行了。每层只与上下相邻的两层打交道。当一层内部由于技术变迁发生变化时,只要接口不变,其他层不用做任何改变。分层之后灵活性提高,也便于团队分工开发。


三 、MVC和三层架构的区别和联系

MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。

mvc可以是三层中的一个表现层框架,属于表现层。三层和mvc可以共存。
三层是基于业务逻辑来分的,而mvc是基于页面来分的。
MVC主要用于表现层,3层主要用于体系架构,3层一般是表现层、中间层、数据层,其中表现层又可以分成MVC(Model View Controller)模型-视图-控制器 


MVC是表现模式(Presentation Pattern
三层架构是典型的架构模式(Architecture Pattern
三层架构的分层模式是典型的上下关系,上层依赖于下层。但MVC作为表现模式是不存在上下关系的,而是相互协作关系。即使将MVC当作架构模式,也不是分层模式。MVC和三层架构基本没有可比性,是应用于不同领域的技术。
MVC模式与三层架构:
ui (view)←(contorller)
*****↓********↓*******
bl (model)
***********************

da 




------------------------------

又看到有人在问三层架构和MVC的关系,感觉这种问题有点教条化了。因为它们都在逻辑上将应用程序划为三块,凑了一个数字3,就有人非要把它们联系到一起了。

  这两个东西我接触有几年了,有一点体会,表达一下:

  三层是三层,MVC是MVC,它们毫无关系的。

三层是从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)。

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

  比如将数据库操作代码封装到一层中,提供一些方法根据参数直接返回用户需要的相应数据,这样在处理具体的业务逻辑的时候,就不用关心数据的存储问题了。

MVC是在应用程序(BS结构)的视图层划分出来的不同功能的几个模块。

  MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。MVC把纯净的界面展示逻辑(用户界面)独立到一些文件中(Views),把一些和用户交互的程序逻辑(Controller)单独放在一些文件中,在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为Models。

  只所以说MVC和三层毫无关系,是因为它们二者使用范围不同:三层可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。

 

 

 

http://blog.youkuaiyun.com/beijiguangyong/article/details/7029257

三层架构就是MVC!

起初老师总说三层MVC,MVC三层架构……

所以开始的时候脑子就一个概念:三层就是MVC,MVC就是三层架构。而且想想也合理啊,都是“三”。MVC是三个字母,三层架构也是“三”,理所应当的就对应上了。然后就这么一直“错”了很长时间。

三层架构绝不是MVC!!

后来学习了J2EE之后发现老师说的好像不对,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是一个东西到最后同样是认为这两是一个东西,但是理解的层次绝对是不一样的。

至于以后会不会再次推翻自己的观点我不晓得,只能说每次推翻都代表着进步,代表着理解的更深一层,所以我期望着下次的否定自己

 

 

http://baike.baidu.com/view/687468.htm

与MVC的区别  MVC(模型Model-视图View-控制器Controller)是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。

  同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。

  在三层架构中没有定义Controller的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。

http://topic.youkuaiyun.com/u/20090710/14/07f4447d-60c4-4b74-af1c-ea1b6e2e9ca7.html

当然啊,你要明白三层架构的MVC的区别和联系:

三层架构是最基本的项目分层结果,而MVC则是三层架构的一个变体,MVC是一种好的开发模式。首先你要明白MVC分别代表的是什么意思.
M 即Model(模型层),主要负责出来业务逻辑以及数据库的交互
V 即View(视图层),主要用于显示数据和提交数据
C 即Controller(控制器),主要是用作捕获请求并控制请求转发

三层:UI 界面层 BLL 业务逻辑层,DAL数据访问层,Model 实体层
MVC中的的M 不是三层中的Model(实体层),他其实包括三层中的 BLL,DAL,Model,这是非常要注意的,这也是他们之间的区别的关键所在

其有点有如下:
低耦合性
高重用性和可适用性
较低的生命周期成本
快速的部署
可维护性
有利于软件工程化管理

当然优点也有缺点,那就是内部结构复杂,不容易理解,文件数量大,管理难度自然也就大

MVC设计模式…
三层架构…
他们细分之后得到的是:View(UI)、BIZ(BLL)、DAO(DAL)、Entity(Model)、Controller
MVC把 BIZ(BLL)、DAO(DAL)、Model(Entity) 统一称之为  模型(MODEL),得到:View、Controller、 模型(MODEL)
三层 在我使用中 暂未体会到控制器的存在,完全是:UI、DAO、BLL

他们相同的设计理念就是:把视图设计与数据持久化进行分离,从而降低耦合性,易于扩展,提高团队开发效率。

三层是基于业务逻辑来分的,而mvc是基于页面来分的
根本就没有什么可比性。
其实两个一起用我感觉很好

MVC模式是一种复合设计模式,一种解决方案
三层是种软件架构,通过接口实现编程
三层模式是体系结构模式,MVC是设计模式
三层模式又可归于部署模式,MVC可归于表示模式

引用楼主 daijun17 的回复:
如何在三层架构和mvc之间进行取舍呢?



没有什么取舍的,说的根本不是一回事。在所谓的“三层”中,它要求你将BLL层独立出来,它只是告诉你表示层和业务逻辑层之间的静态关系。而MVC则告诉你在这个具体的地方如何处理其动态驱动流程,尽管mvc仍然粗糙(甚至mvp也是粗糙的),但是已经比所谓三层更细致一些了。

谢谢大家的关注,这几天都在忙面试,没来结贴。再次谢谢大家。
我大概明白了:三层架构和mvc设计模式侧重点不一样,三层是一种笼统的架构思想,没有限制具体的设计;而mvc就比较具体的说明它的设计方法。
还是自己动手做一下,理解会更深一些,以前都是用三层架构的方法

---------------------------------------------------------------------------------------------------------------

http://apps.hi.baidu.com/share/detail/15057889

ASP.NET MVC 与 WebForm 三层架构 区别

1.传统WebForm开发中存在的一些问题

传统的ASP.NET开发中,微软的开发团队为开发者设计了一个在可视化设计器中拖放控件,编写代码响应事件的快速开发环境。然而,它所带来的负面效应是:

由于控件封装了很多东西,开发者很难了解这背后的HTML是如何运作的

容易得到一个包含大量ViewState的页面,使得页面尺寸远远超过所需的内容,使得页面的打开速度较慢

不容易被测试

2.什么是MVC?

MVC(Model-View-Controller,模型-视图-控制器模式)是软件工程中的一种软件架构模式。它把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

3.什么是ASP.NET MVC?

ASP.NET MVC是微软的开发团队基于MVC开发的一个易于被测试的框架。它具有以下特性:

没有数据回传

没有在页面中保存视图状态

开发者可以完全掌控页面的呈现过程

易于单元测试

易于测试驱动开发

可扩展、可替换

支持WebForm中的有关特性,如:用户控件、母版页、数据绑定、本地化等

不在基于文件目录结构,而是将URL映射到控制器中

4. 为什么使用ASP.NET MVC?

易于进行单元测试

易于进行测试驱动开发

避免了WebForm中大量的ViewState导致页面文件变得臃肿

5. MVC与三层架构?

MVC是一种模式
ASP.NET MVC是一个基于MVC模式的开发框架
三层架构是一种架构

至于区别,可以严格的从概念上区分开来。

下图是MVC与三层架构的对应关系

6. MVC与Webform如何抉择?

7. 两种技术并存

ASP.NET MVC框架只是给开发者提供欧诺个了开发web应用程序的一种选择,并不是要取代Webform

这两种技术各有优缺点,开发者需要根据实际情况,选择对应的技术

有时候,可以在同一个项目中混合使用这两种技术

8.ASP.NET MVC与Webform技术的架构图

总结:

看完本文,相信ASP.NET WebForm与ASP.NET MVC的选择相信大家应该可以做到心中有数了,我始终觉得,很多时候并不是什么技术好不好的问题,而是适合不适合不适合的问题或者能否把它用好的问题。

打个比方:如果让千里马犁地,恐怕未必能达到理想的效果,最终可能还会抱怨,什么破马,一点劲都没有。

========================================================================

 

http://www.blogjava.net/phyeas/archive/2008/07/01/211995.html

同样是架构级别的,它们有什么相同点和不同点呢?这篇文章讨论一下它们的异同点。希望能帮助读者理解其中的玄机。 :)

其实它们相同的地方在于他们都有一个表现层。

但是他们不同的地方在于其他的两个层。

首先先解释一下MVC。V即View.是视图的意思。C即Controler.是控制器的意思。而M即Model,是模型的意思。这三个里.最不容易理解的应该是Model.就是什么是Model,而为什么叫Model。我先不说为什么叫Model,先解释Controler。

Controller是控制器的意思,所谓控制器,就是将用户请求转发给模型层,经过处理后把结果返回到界面展现的一个中间层,那么Controler到底管什么工作呢?先不说.先来看下在Java Web中这三个层一般的定义,一般在Java Web里,JSP充当V,Servlet充当C,JavaBean充当M,这里的Servlet管什么工作呢?接受输入,转到Model层去处理,处理结果保存后转发到JSP,然后展现数据。所以它的功能就是控制器的基本功能,它就管转发,在V和M之间转来转去。

再来说说M,即Model,在Java Web里说的是JavaBean,我认识的很多人都把JavaBean误认为是实体类,其实JavaBean有比实体类更丰富的定义,在JavaBean中除了其属性和字段,还可以有行为及其事件,JavaBean可以理解为普通Java对象。Java普通对象,就是符合Java规范的所有对象,这和实体类完全是两回事。所以,我认为在MVC中。业务逻辑和数据访问应该放在Model层,也就是V负责展示数据,Controler除了转发不做业务逻辑。真正的逻辑事务,数据访问,甚至算法都放到Model去。

再说三层架构。三层其实很好理解,界面,业务,数据访问,就这三个,从字面都可以理解出它们的意思。我要说的是它和MVC的区别。在三层架构中没有定义Controler的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。

当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是已实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。不一样的概念。虽然名字一样。

 

 

 

 

http://blog.sina.com.cn/s/blog_677b66170100mv16.html

asp.net mvc和三层架构联系与区别

首先,MVC和三层架构,是不一样的。
  三层架构中,DAL(数据访问层)、BLL(业务逻辑层)、WEB层各司其职,意在职责分离。
  MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的WEB层,也就是说,MVC把三层架构中的WEB层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。
  所以, .net的三层结构中,并没有action这个概念。
  asp.net mvc 是微软新发布的一种网站开发架构。为了解决传统asp.net开发中不能分离Model,View和Controller而设计的。
  普通的网站为了解决可移植,可维护,可扩展等问题,会把网站设计成三个独立的模块,Model负责数据库部分,View负责网页的界面,而Controller负责界面与数据的交互及业务逻辑,这样设计的网站如果想设计或者重新开发某一个模块对其他的模块是没有影响的。但是asp.net的页面后台代码与每个页面代码都是一一对应的,业务逻辑在某些情况下不可避免的被写到了与View关联的后台代码中。这样就不能保证View与Controller的分离,也就很难实现网站的重写和升级。
  而在MVC中页面代码并不是与后台代码一一对应,而是分别被存放成Controller和View两个部分,彻底的解决了,View和Controller不能独立的问题。从而改善网站的重写和升级过程。
  但是MVC也有其缺点,由于在页面代码中不再可以使用服务器控件,因此给某些asp.net服务器端控件的使用带来了麻烦,而且MVC也页面的设计工作带来了很多障碍。
  ASP.NET MVC 是微软在2009年4月份发布的一种新的网站开发架构,http://msdn.microsoft.com/en-us/library/dd394709.a spx,它是把传统意义上的MVC开发思想融合到了ASP.NET的开发当中。
  那么我也来讲讲我对这两者的理解吧。
  首先对这个题目,本身是存在问题的,"XX结构"与"XX模式"的区别?请问中国社会制度与美国人生活方式有什么区别?
  这两者本身讲的是不同方向与角度的问题,在实际应用中他们的确存在一些相似的特点,在很多书籍中也没有深入讲解,以致于造成困惑,为了更好的理解他们,姑且来说说区别吧。
  首先N层结构是一种软件抽象的层次结构,是对复杂软件的一种纵向切分,每一层次中完成同一类型的操作,以便将各种代码以其完成的使命作为依据来分割,以将低软件的复杂度,提高其可维护性。一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。三层结构是N层结构的一种,是人产在长时间使用中得出来的一种应用场合广泛的N层结构,被当作一种典型的软件层次结构而广为流传甚至写入教科书。
  MVC模式是一种复合设计模式,一种在特定场合用于解决某种实际问题来得出的可以反复实践的解决方案。巧合的是他也有三个事物组成,于是乎人们就有了一种想当然的对应关系:展示层-View;业务逻辑层-Control;持久层-Model。首先MVC中的三个事物之间并不存在明显的层次结构,没有明显的向下依赖关系,相反的,View和Model往往是比较独立的,而Control是连接两者的桥梁,他们更像是横向的切分。这样一来就出现一个结果,MVC中每个块都是可以独立测试的,而三层结构中,上层模块的运行测试势必要提供下层代码或者提供相同接口的桩。相对来说,MVC复杂得多,但是结构更清晰,耦合性更低。
  另外,MVC中每一块内部特别是Model内部经常被设计为多层的。在我认为的一个良好的MVC模式构建的结构中,Control是核心,小且较为稳定的,可以作为一个核心框架来提供,有扩展点,但基本上可以简单配置不需要任何代码就可以运行。而View则可能是一套或多种可选择的视图引擎,决定了软件展示给用于的界面,使用时的主要工作量在于扩展点以及根据需要而数量不同的视图模板。Model则是业务提供者,决定了软件提供的功能,其内部可能是一些普通的类或者是实现了某些接口的类,在这一块当中可能根据业务的不同而色彩缤纷,对于复杂的软件可能会分成很多层,如业务逻辑层、业务提供层、系统提供层、数据提供层、数据访问层等。
  我经常用于比喻MVC的例子是小时候玩的那种卡带式游戏机,Control是主机,一般来说我买一个主机就行了,只要他不坏,他就能一直让我玩这一类的游戏。View则是电视机和游戏手柄,电视机可以独立工作,他不管输入的是电视信号、影碟机信号还是游戏机信号,他只管显示,而且他决定了我们看到的效果是怎么样的,如果我想要个尺寸更大的或者彩色的显示效果,我只需要买个相应的电视机就行了,手柄也是可以换的,要遥杆还是带震动的。Model则是游戏卡带,他绝定了我玩的是什么游戏,是魂斗罗还是超级玛莉,而且游戏机主机和电视机生产厂家永远也不知道在上面有可能会运行什么样的游戏。卡带中可能会有游戏代码和存储单元,都根据游戏的需要而设计。
  有朋友提到游戏主机提供的卡带插槽的接口,在设计中,有时也由Control提供一组接口,以用于Model或View的实现,这样就形成了依赖。一般来说这样设计也没有太大的问题,只是会提高模块间的耦合度,也会带来一些侵入性。为了更完美,可以不用接口来提供契约,可以用配置信息(或称元数据信息)+反射来提供契约,那么这个类接口就可以退化到只要符合CLS就可以了,也就是普通的类,就像现在的计算机接口广泛采用USB,无论是U盘、打印机、扫描仪或者是加密狗,他们都是普通的USB设备而已。
  提到USB有一个题外话,模块的可插拔性设计甚至是热插拔设计,系统可以在不停止运行的情况下动态的挂载或移除模块,动态挂载模块需要系统能够自动发现新模块并根据自描述的信息进行自动配置,移除可能情况更复杂一点,需要"安全删除硬件"类似的功能。
  在设计广泛重用的框架时会考虑多种情况以达到更大的适应性,一般项目中应用MVC模式可以较为随意。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值