软件体系架构设计——MVC与分层式三层架构区别
我们平时总是将三层架构与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系统的解耦,即侧重和Servlet的⼀个解耦。
mvc三层架构如何实现最后,为何我们会将其混为⼀谈?
  既然两者有这么多的不同,我们为什么还总是将其混淆呢,下⾯我列举了⼏个我们常常将其混为⼀谈的⼏个原因:
  1.⼆者都是“三层”。
  这个原因是最容易迷惑我们初学者的,⼀个是UI,BLL,DAL,⼀个是View,Controller,Model,不都是三层吗?
  虽然都是“三层”(不⼀定是真的三层,还可以是多层),但是它们的划分的不⼀样。⼤家可从上⾯的图中看出不同。
  2.MVC总是伴随着三层架构。
  这个就是我在前⾯⼀再强调的,我们⼀般是在考虑使⽤(也可以不使⽤)了三层的基础上再根据具体需求决定是否需要使⽤MVC,于是我们常说的MVC中总是伴随着三层架构,所以⼤家总是会认为MVC就是三层架构,三层架构就是MVC,殊不知,它们⼆者是⼀起出现的。
  3.都是在分层,即都是在解耦。
  前⾯说它们⽬的的时候也说了,虽然它们的侧重点不同,但是它们的总体⽬的是⼀样的,都是为了解耦,对于初学者⽽⾔,是不知道这两个侧重点有何不同的。
  ⼤家往往对它们的联系知道很多,不然也不会混为⼀谈,但是对它们的区别却知道较少,希望我上⾯讲解的它们两者之间的区别可以让⼤家对它们有些了解,如有写的不妥的地⽅,请指教。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。