博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一张图看懂什么是MVC,三层结构,AOP,IOC。以及他们的区别与联系
阅读量:4121 次
发布时间:2019-05-25

本文共 812 字,大约阅读时间需要 2 分钟。

废话不多说,先上图

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

  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并不关注软件的设计阶段,而是关注软件的运行阶段

转载地址:http://ikppi.baihongyu.com/

你可能感兴趣的文章
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>
【web素材】03-24款后台管理系统网站模板
查看>>
Flex 布局教程:语法篇
查看>>
年薪50万+的90后程序员都经历了什么?
查看>>
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>
【JavaScript 教程】面向对象编程——实例对象与 new 命令
查看>>
我在网易做了6年前端,想给求职者4条建议
查看>>
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
查看>>
RQP-DEF-0177
查看>>
Linux查看mac地址
查看>>
Linux修改ip
查看>>
MySQL字段类型的选择与MySQL的查询效率
查看>>
Java的Properties配置文件用法【续】
查看>>
JAVA操作properties文件的代码实例
查看>>
IPS开发手记【一】
查看>>
Java通用字符处理类
查看>>
文件上传时生成“日期+随机数”式文件名前缀的Java代码
查看>>
Java代码检查工具Checkstyle常见输出结果
查看>>