三层架构与MVC谜团之谜底揭晓
来源:新途北大青鸟|发布时间:2016-05-21|浏览量:
我们日常平凡老是将三层架构与MVC混为一谈,却不知它俩其实不是一个概念。上面我来为巨匠揭晓我所明白的一些本相。
起首,它俩底子不是一个概念。
三层架构是一个分层式的软件系统架构想象,它可合用于任何一个项目。
MVC是一个想象方式,它是依照项目的细致需求来决议是不是合用于该项目。
那末架构跟想象方式有甚么辨别呢?
我们从接办一个项目起头,起首,我们需求中止架构想象,普通我们采取的就是分层式的架构想象,即我们的三层架构。
然后,在肯定了架构今后,我们再依照项目的细致需求往推敲是不是需求应用一些想象方式,好比是不是应用我们的MVC方式,笼统工场方式等等。(在这里我们看出,MVC与三层架构不是一个品级的,而与笼统工场等想象方式才是一路的)
最初,肯定了方式今后,就是我们的一些细致的完成了。(固然一个项目不但仅推敲这些标题,我只是为了声明二者的辨别,将其他标题已省略)
其次,它俩划分的条理分歧。
三层架构将全部项目划分为:表示层(UI)、停业逻辑层(BLL)、数据拜候层(DAL)。
MVC即Model(模子),View(视图),Controller(节制)。
上面看一下他俩的辨别与联络:
经由过程这个图我们能够明白,我们泛泛所说的V是UI,C是BLL,M是DAL的不雅点是缺点的。
而我们但凡所见到的MVC普通也都是在应用三层架构的基本上,行将Model层再中止分层。而若是Model不再中止划分的话,那末应用MVC的意义也就不大了。
然后,它俩的目的偏重点分歧。
三层架构的目的偏重点是“高内聚,低耦合”,即解耦。
MVC的目的则是完成Web系统的本能机能分工,即职责划分。
真实职责划分也是解耦,可是三层侧重的是全体的一个解耦,而MVC侧重的是web系统的解耦,即侧重jsp和Servlet的一个解耦。
最初,为什么我们会将其混为一谈?
既然二者有这么多的分歧,我们为何还老是将其混合呢,上面我罗列了几个我们经常将其混为一谈的几个缘由:
1.两者都是“三层”。
这个缘由是最随便威逼我们初学者的,一个是UI,BLL,DAL,一个是View,Controller,Model,不都是三层吗?
固然都是“三层”(纷歧定是真的三层,还可所以多层),可是它们的划分的纷歧样。巨匠可从下面的图中看出分歧。
2.MVC老是陪伴着三层架构。
这个就是我在后面几回再三夸张的,我们通常为在推敲应用(也可以不应用)了三层架构的基本上再依照细致需求决议是不是需求应用MVC,因此我们常说的MVC中老是陪伴着三层架构,所以巨匠老是会以为MVC就是三层架构,三层架构就是MVC,却不知,它们两者是一路呈现的。
3.都是在分层,即都是在解耦。
后面说它们目的的时辰也说了,固然它们的侧重点分歧,可是它们的整体目的是一样的,都是为体会耦,对初学者而言,是不明白这两个侧重点有何分歧的。
巨匠常常对它们的联络明白良多,否则也不会混为一谈,可是对它们的辨别却明白较少,但愿我下面讲授的它们二者之间的辨别可让巨匠对它们有些体会,若有写的不当的处所,请指教。
上一篇:集成Sping与Web容器
下一篇:调集属性的延迟加载
扫码关注微信公众号了解更多详情
跟技术大咖,专业导师一起交流学习