三层架构与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不太适合于中小规模的项目进行,因为其结构相较于三层架构而言复杂太多,而由于结构的关系视图对于模型的访问效率过低。


求指点个人三层架构理解

10-27

刚从学校毕业出来,知道了三层架构这一说,但是三个月来看了两个项目代码,个人感觉里面的业务逻辑层没意义似的,两个项目里的BLL都是接收表现层传来的参数,然后直接返回调用数据访问层的方法的返回值,不做任何处理。个人感觉至少也要对UI传来的值处理后在传给DAL,DAL返回的值再处理后传回给UI吧。还有觉得在写DAL层时,并不是根据BLL写的,不是BLL要什么DAL就写什么,因为要是作为一种“抽屉”式的,下层并不知道上层要什么,对上层是无知的,这是我们在设计DAL层时,把最基本的数据库操作写进去,然后对于一个具体的项目,就要BLL对DAL返回的筛选处理后才返回给UI。rn个人理解UI传给BLL一个员工的工号,要BLL返回该员工的姓名与所在部门名称。但是在DAL并没有根据员工的工号直接可以查出姓名与部门的方法,但是有根据工号在员工表里查出员工所有信息的方法,这里并没有员工所在的部门ID,然后还有一个方法可以根据部门ID查出部门的所有信息。我们在BLL就应该这样处理:根据工号先查出员工所在部门的ID与姓名,然后再根据部门ID查出部门的所有信息,最后只把员工的姓名与部门名称返回给UI就是了。rnrnrn新手描述可能不准确,理解可能有所偏差,还望各位指点,要是有比较针对性的代码发我邮箱,在这先谢谢了haoxin2634@163.comrnrn

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

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭