架构和模式的区别:三层架构和MVC在应用开发中的位置

架构是系统层面的,可以是多层架构,也可以是事件驱动架构,也可以是微服务架构。

模式是GUI应用的一种职责分离设计。

三层架构(包含多层架构)和 MVC模式(包含MVP, MVVM) 没什么关系,它们不在同一个维度上。

三层架构是从整个应用程序架构的角度来分为DAL(数据访问层)、BLL(业务逻辑层)、WEB层(界面层)各司其职,意在职责分离;三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑;并且三层只是多层架构中的一种情况,完全可以根据需要分为多层。

MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的UI尽可能的和业务代码分离。MVC把纯净的UI展示逻辑独立到一些文件中(Views),把一些和用户交互的程序逻辑单独放在一些文件中(Controller),在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为Models。而在其后出现的 MVP 以及 MVVM 与 MVC 的作用类似,这些模式之间的区别在于如何解决 M 与 V 之间的连接与更新。

总之,MVC 是一种模式,三层架构是一种架构。

其次,它们都有一个表现层,但是这两者的展现层并不是一样的。可以这样看待 MVC与三层架构中的表现层的关系,MVC中的 V 和 C都属于三层架构中的表现层,可以看下图的示意。

posted @ 2016-05-12 16:57  Mosthink  阅读(305)  评论(0编辑  收藏  举报