理解Java的OCP和IOC原理

7七月demand

1. 要自己理解
1. 不能照搬
1. 不能和Spring相同
1. 为什么

目的:
理解Java的OCP和IOC原理

作业要求:
课程从一个非常简单的案例逐步讲解Java为什么笨重缺又收到企业开发的青睐。但是纸上谈终觉浅,还是需要大家在听课的基础上更进一步的写写自己对于IOC的理解。
IOC在业务型的项目中看起来不仅仅不能简化代码,甚至是更繁琐,但在框架设计上是非常有用的。
IOC同时又比较抽象,大家应该一边听课一边做自己的总结归纳,最后 再对比课程的讲解,这样可以更好的理解Java这个语言。

七月老师的要求让不懂Java的小白都能看懂的文章

  • Inversion Of Controll 控制反转
  • Dependency Injection 依赖注入

当我们看到这两个学术化的名词呢, 往往容易劝退新手, 但是不要慌张, 这东西难也不会难道哪里去, 我们又不是造火箭和大炮的

什么是 IOC (控制反转)?

​ 学术化说法: 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度

从学术化的说法中我们能知道什么呢?

  • IOC(控制反转) 不是技术, 而是一门 面向对象编程中的思想
  • 可以通过IOC来减少代码之间的耦合度

大抵概念就是这些, 来来回回应该就围绕着来展开


为什么我们要使用IOC?

既然是一种设计思想, 那么他能该我们带来什么呢?

一种好的设计思想可以指导我们设计出松耦合的, 优良的程序.

他可以打破我们传动的思维方式! 其实也不算举个栗子就好解释了.


我是桃李, 我今天想吃一碗面, (程序中想达到的目标, 需求)

我买了面条, 番茄, 青菜, 辣椒 (这是完成这个需求需要的东西, 程序中就是需要new 一个对象引入进来)

我需要开火, 烧水 放面条, 青菜, 辣椒调味, 关火等步骤 (这是操作琐碎的过程, 在理解IOC不占大比重)

最后我得到了一碗 七月牌小面 每次做一碗面我基本都要重复上面第二条, 第三条的操作

以上就是传统的思维模式


接下来介绍引入IOC会是什么变化:

我是桃李, 我今天想吃一碗面, (程序中想达到的目标, 需求)

我来到一家七月面馆, 我和 7七月说 我想要一个七月牌小面微辣

过一会巴拉巴拉, 7七月师傅就做好端在我面前说, 客官您享用哎

最后! 我还是得到了一碗 七月牌小面


看到了吧, 其实面馆就是我们所说的IOC控制反转, 所谓反转反转 就是把主动的我 也就是桃李这个人

从主动 到 被动


在程序开发当中, 我们把琐碎的准备食材这个过程交给我们的面馆(IOC), 当我们需要的时候就依赖注入(DI)

传递给我, 我们就可以很轻松的达到我们想要的目的, 降低我们代码耦合, 写出更松耦合的代码提高代码质量!


IOC (控制反转)名词解释

控制: 控制什么呢? 当然是IOC容器控制了对象, 在此之前, 对象都是自己主动获取外部资源, 现在把任务交给了IOC
反转: 在此之间是自己直接获取外部资源, 现在是IOC容器进行查找并且依赖注入对象, 对象只是被动的接收参数即可

七月小面很形象了, 在此之前都是自己找食材, 现在去了商店 他给你材料并且帮你做好

DI(依赖注入)

IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象
上面这句话是其他博主写的 博主
其实很好理解, 还是七月的面, 需要辣椒酱的时候向七月说一声他就帮你注入到你的碗里,
在编码的时候, 需要某个Connection对象, 紧接着我们告诉IOC, 让IOC给你查找然后注入到你的对象中实现目标。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值