MVC架构模式

MVC架构模式

【纯个人理解,欢迎在评论区指正】

一、系统为什么要分层

​ 为了让系统之中的各个组件分工明确,各司其职。降低代码耦合度,增强扩展力,提高可复用性。

二、什么是MVC架构模式

M即Model,代表数据、业务。V即View,代表视图、页面。C即Controller,代表控制器。

其中,C是核心,它没有与业务相关的任何操作,只是负责调度M和V。若调度M,就是让M进行业务处理和数据处理。若调度V,就是让V进行页面展示。MVC不存在三层架构中上下的依赖关系,而是一种相互协作关系

  • 优点
    • 代码复用性高,耦合度低,方便维护,利于分工协作(在大型项目中,开发人员分工明确,各司其职,这提高了开发的效率,并且维护方便,降低了维护成本)
  • 缺点
    • 不适合小型的应用程序:花费大量的时间将MVC用到规模不大的程序中会得不偿失。功能代码不多,实现分层的代码却要不少。
    • 降低系统的性能:由于视图不能直接访问数据库,而需要控制器来调度,因此降低了性能
    • 增加了开发成本:项目架构变得复杂,对开发人员的要求更高了
图示MVC架构模式
图示MVC架构模式

三、什么是三层架构

​ 三层架构就是为了符合高内聚,低耦合的思想,把各个功能模块划分为表示层(UI)业务逻辑层(BLL)数据访问层(DAL)这三层架构。这三层之间属于**上下依赖**关系。每一层都有自己的职责,上一层不用关心下一层的实现细节,上一层通过下一层提供的对外接口来使用功能。只能是上一层调用下一层的功能,下一层不能调用上一层的而功能。

  • 表现层就是与用户进行交互的界面,接收用户输入的数据和处理用户需要的数据并回显给用户;

  • 业务逻辑层是表现层和数据访问层之间的桥梁,负责调用数据访问层完成一系列的数据操作,并将结果返回给表现层,它是针对具体问题所进行的业务操作;

  • 数据访问层直接操作数据库,实现数据的增删改查操作。

  • 优点
    • 各层专注自己功能的实现,便于提高质量
    • 层次划分清晰,提高开发效率
    • 便于代码的复用
    • 便于程序的扩展
  • 缺点
    • 降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成
    • 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
    • 增加了开发成本,项目架构变得复杂,对开发人员的要求更高了
用MVC类比三层架构(但不要混为一谈)
  用MVC类比三层架构

四、什么是高内聚,低耦合

什么是高内聚,低耦合

  • 高内聚:高内聚就是**模块内的各个元素彼此结合的紧密程度很高,即功能非常集中,没有分散。**(只专一的实现某个功能)
  • 低耦合:在一个完整的系统中,模块与模块之间,应尽可能的独立存在,谁也不依赖于谁。

​ 并不存在绝对的高内聚低耦合,当一个模块的内聚性非常高时,它所实现的功能一定是非常单一的。那么要想完成更加复杂,功能非常多样的业务,必定会提高对外模块的依赖性,这就增加了程序的耦合度。反之亦然。

所以,高耦合&高内聚 ~ 低耦合&低内聚便是两个极端。我们需要折中找到合适的平衡点。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值