一张图看懂什么是MVC,三层结构,AOP,IOC。以及他们的区别与联系

废话不多说,先上图

这张图讲的是一个软件的整体结构,看上去很乱,我来解释下都表示些什么

  1. 最外层土黄色矩形是指三层结构
  2. 绿色矩形代表AOP
  3. 土黄色矩形是MVC
  4. 蓝线表示请求流程
  5. 青线表示返回流程
    在这里插入图片描述

这个图说明三层结构MVCAOP之间的关系

整个软件我们可以看成一个豆腐块

  • 我们横向切三刀,这种切法就是三层结构
    切出的是一个软件中一个功能是如何实现的
  • 我们纵向切若干刀,这种切法就是AOP。
    那么每形成一个小的竖直豆腐块,都是代表一个模块。当然如果你也可以把豆腐块看成一个模块,那小豆腐块就是一个个功能了
    AOP不但可以竖着切,也可以横着切,而横着切的AOP3则代表软件中会被其他模块依赖的模块,比如用户状态,购物车状态等
  • 所以AOP和三层结构都是软件的设计模式,只不过出发的角度不同罢了,一个专注于软件功能的分割,另一个是对软件功能实现过程的分层
  • MVC,在图中可以看到MVC在三层结构中其实是被拆分了,c和v在表示层,而model比较特别,他其实是一块砖,哪里用哪里搬。model的作用就是用作数据容器使用,所以其实model的存在并不固定,而我们起一个实体类对象一般在业务代码中,所以我就将model放在那里了。
  • 可能会有人问:为什么老是感觉MVC和我实际编写的代码对不上?
    这其实是一个历史问题,三层结构之前还有两种开发模式被迭代了:model1和model2,而这两个是完全和MVC匹配的,到了Model2末期,为了进一步解耦才出现了三层结构,但是MVC的说法确沿用下来了,现在也没有用纯MVC模式开发的,多少会用到其他方式辅助开发

那IOC呢?

简单来讲,框架的运作原理就是IOC,而我们最多就是配置下框架,所以在我们工作中其实很少去实际接触IOC,IOC原理就是用框架来决定何时创建对象,比如那些工厂类的对象,这些工厂类是和软件运行时候有关。所以可以知道的是IOC并不关注软件的设计阶段,而是关注软件的运行阶段

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值