Architectural Pattern(3)-N-Tier与MVC架构的区别与联系

MVC模式具体可参见“Architectural Pattern(1)--MVC",N-Tier可参见"Architectural Pattern(2)-n tier architecture pattern",本小文主要考虑N-Tier与MVC架构的区别与联系.

在”http://www.csdn123.com/html/technology/2013/20131218/3830.htm“看到这么一段话:
就拿多层架构中最典型的三层来说,在三层中,数据访问层(DAL)、业务逻辑层(BLL)、Web层各司其职。MVC是Model-View-Controller。严格说起来这三个加起来才是三层架构中的Web层,换种说法就是MVC就是表示层中再度分化,分成了控制器、视图、实体三个部分。View完成页面逻辑,Model则封装需要传递到View进行显示的数据,而控制层则与三层中的BLL进行通信。
这段话中的”层“指的是Tier而不是Layer(Layer与Tier的区别详见Architectural Pattern(2)-n tier architecture pattern),

我仔细思量这段话,发现他有两个误解。
一个是他有个自相矛盾的地方:MVC的控制层与三层中的BLL进行通信,按照MVC的模型,controller是与model通信的,那么BLL就是model了,这就与前面这句”这三个加起来才是三层架构中的Web层“是相互矛盾的。

MVC的三个模块,是可以看做3个Layer,而这3个layer到底属于哪几个Tier 则需要具体问题具体分析(在不同的应用场景中是不一样的)。这里单说,如果是jsp+servlet的模式,那么由于jsp与servelet是一体的,他们只能部署在一起,只能算一个Tier,因此这时候就只有两个Tier: jsp+servelet(view+controller)算做Presentatiion Tier,  Model则同时完成BLL+DAL的功能.

第二个是他对model的理解是有局限的,他说” Model则封装需要传递到View进行显示的数据“, 但是实际上Model( 数据模型)的定义远强于这个描述:用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。也就是说,他包括了BLL+DAL,而返回给jsp的仅仅是一个value object,是model的一个返回值而已,并不是model的全部。

综上所述:如果我们使用了jsp+Servelet的架构,那么MVC的VIEW(也可以说包括controller,但有的文章把controller单独拿出来,哪一层都不算)对应的是presentation tier,model则包括了BLL+DAL。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值