java的机制
- 耦合度高,可维护性高
- 开闭原则,IOC DI等
java使用interface和abstract 用法
- 单纯的interface可以统一方法的调用,但是它不能统一对象的实例化
- 面向对象 - 实例化对象,调用方法(完成业务逻辑)
- 只有一段代码中么有出现new的关键字,才能保持代码的相对稳定,才能实现OCP
- 上面第三点只是表象,实质是一段代码如果要保持稳定,就不应该负责对象的实例化
- 对象的实例化是不可能被消除的
- 把对象实例化的过程,转移到其他的代码块
- 代码中总是会存在不稳定,隔离这些不稳定,保证其他的代码是稳定的
- 变化造成了不稳定
- 配置文件是属于代码外部的,不属于代码本身
OCP原则
- 统一方法的调用
- 正是由于方法的不统一,才无法实现开闭原则
- 工厂+反射可以解决OCP但并不是IOC;他可以解决OCP但并不好用,不灵活。工厂+反射关注点是对象的实例化,而IOC关注的是对象如何获得(赋值)
计算机代码是什么?
模拟现实世界中一些业务的投影
IOC、DI、DIP
DIP:依赖倒置
1. 高层模块不应该依赖底层模块,两者都应该依赖抽象
2. 抽象不应该依赖细节
3. 细节应该依赖抽象
DI: 依赖注入
4. 属性注入 2.构造注入 3.接口注入
IOC:控制反转