本文共 812 字,大约阅读时间需要 2 分钟。
废话不多说,先上图
这张图讲的是一个软件的整体结构,看上去很乱,我来解释下都表示些什么
- 最外层土黄色矩形是指三层结构
- 绿色矩形代表AOP
- 土黄色矩形是MVC
- 蓝线表示请求流程
- 青线表示返回流程
这个图说明三层结构,MVC,AOP之间的关系
整个软件我们可以看成一个豆腐块
- 我们横向切三刀,这种切法就是三层结构。 切出的是一个软件中一个功能是如何实现的
- 我们纵向切若干刀,这种切法就是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/