浅浅理解一下MVC的设计模型

14 篇文章 1 订阅

高内聚,低耦合

在计算机程序设计中,秉着“高内聚,低耦合”的设计原则,尤其是在像 JAVA,PYTHON,CPP等一些面向对象的语言中体现更为明显

我估计到现在…很多人其实并不理解"高内聚,低耦合"的意义在哪儿

内聚 (模块内部),包括偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚

耦合 (模块与模块之间),包括非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合

具体的…稍微百度一下

怎么理解高内聚呢?

就想象成一个旅游团出去旅游包了一个酒店,你肯定是和你家人住在一起,住在一个房间里,或者会要求住在连续的几个房间里吧(如果家里人比较多),但是你不会随随便便和一个陌生人一起住吧…毕竟…家里人还是方便一点,有什么事就可以直接家庭内部就解决了(比如你妈妈找到了你爸爸藏起来的私房钱,要批评教育一下…)这个过程在一个房间中很容易完成,而且也不怕别人说闲话啥的,因为对外是不可见的…或者有人想请你和父母一起参加一个活动的话,直接敲一个房间的门即可,毕竟你们是一家人一起行动,更加方便…

而低内聚呢?你爸爸在酒店1楼东边1号房间,你妈妈却在18楼西边5号房间,两边想要说说话都得打电话…同样的,有人邀请你和父母一起参加活动,还得西边通知一下,东边再通知一下,就很麻烦…

怎么理解低耦合呢?

平常军方的负责军方的事情,公安负责公安的,但是有些时候不是会军警联合执行某个任务吗?但是这时候会由指挥部统一下达命令,等到任务完成又回到自己的岗位上去做自己的事情

什么是MVC?

M: Model 也就是模型,一般来讲表示业务模型

V: View 也就是试图,一般用来展示给用户看的部分

C: Controller 也就是控制器

首先,MVC是一个模型,也是一个概念,甚至可以说是一种架构设计

扯了这么久高内聚低耦合,与MVC啥关系?

视图层,都说了是给用户看的,你管他看啥,反正他们直接操作的就是视图层,不管是网页界面,还是App界面,亦或者是…控制台界面…而且用户在这一层操作了数据或者发送了请求,又或者是把某些数据显示给用户,最多进行点简单的逻辑判断(当然,如果前后端分离的话,逻辑判断等那就也没有那么轻松了)

控制层,控制嘛,根据视图层给的请求,交给指定的业务层处理,处理完了再看该转发到哪一个视图啥的,视图那么多,或者说模型那么多,到底该怎么对应呢?这就得靠控制层喽

模型层,业务流程或者状态的处理亦或者业务的规则规定啥的就在这一层,本层的逻辑处理过程对于控制层,视图层都不可见,本来就与他们没啥关系,自己搞自己的,这不就是高内聚了吗?然后我模型层的东西需要整到视图层去,就只需要把需要的东东封装起来丢给控制层,然后控制层通过控制层自己的逻辑判断再丢给视图层,那,我模型层内部咋处理的,与控制层有啥关系?与视图层有啥关系? 而且,在模型层中有一个很重要的东西,就是数据存储模型, 也就是说,我需要将数据保存起来或者我需要从本地或者某个地方拿到数据(如:从数据库拿数据,保存数据到数据库… …操作)

在Java模型层之中,我们需要充分利用接口和类之间的关系,因为模型层之内也不光仅仅只有一个模型,会有很多模型,而且模型之间还有相互的关联,那么我们大多数时候只需要关心模型层的逻辑处理即可

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值