三层架构与MVC---个人理解

    三层架构主要分为表示层(UI)业务逻辑层(BLL)以及数据访问层(DAL)

    三层架构主要是为了实现高内聚低耦合效果。主要是可以使得我们写的代码可以只关注于结构中的某一层,思路更加清晰,有利于代码的复用性。例如我最近的写的一个项目中,当DAL层写好后,绝大部分情况都不需要对其进行修改,这种架构便于我们对于编程的书写,但这种架构不可避免的最大问题是会降低了系统的性能。

    数据访问层:主要是去对数据库中的数据进行操作的层次,基本所有的对数据库的操作都在这进行,例如最简单的增删改查、执行存储过程等操作均是在这里进行的。如果说我们的系统是个工厂,那么数据访问层就是工厂去进货的过程。

    业务逻辑层:主要是针对我们系统具体的需求而进行的操作,主要就是对我们从数据访问层获取到的数据进行处理。这个过程就好比工厂中的加工过程(将原材料加工成用户希望的物品)

    表示层:主要是面向客户的界面部分,例如Winform程序、Web界面等等。

     最后就是在刚刚接触MVC架构时,我也曾将他们混淆了,MVC也是三层结构:模型层(Model)视图层(View)以及控制器(Controller)。三层架构的UI层与MVC的视图层是相同的,而其他两层是截然不同的层次。

    最开始我将三层架构中的Model与MVC中的Model混淆了,原因也很简单名字一样嘛,然而其实他们是不同的,三层架构中的Model只是实体类的集合,而MVC的Model指的是在程序中处理数据逻辑的部分,这也就意味着MVC中的Model包含了三层架构中的数据访问与业务逻辑的作用。

    而MVC中的视图层则类似于三层架构中的表示层,那么疑问就来了MVC中的控制器又是什么作用的呢?控制器主要是程序中处理用户数据的部分。MVC的架构的流程是:用户从对系统进行操作,控制器获取信息传递给Model,Model层对数据进行处理分析和数据库的存取之后,将结果在视图层呈现给用户,用户获取到信息后在进行操作的这一循环过程。

    MCV与三层架构有着一些相同的优点,例如:代码复用性高,低耦合,可维护性高等等,但是MVC不太适合于中小规模的项目进行,因为其结构相较于三层架构而言复杂太多,而由于结构的关系视图对于模型的访问效率过低。


阅读更多
文章标签: 三层架构 MVC
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭