接口
单纯的Interface可以统一方法的调用,但是它不能统一对象的实例化。
只有一段代码不负责对象实例化,才能保持相对稳定,才能逐步实现OCP。
上面这句话比较抽象,实际上一段代码要保持稳定,就不应该负责对象的实例化。
对象的实例化是不可能消除的。
工厂模式
把对象实例化的过程转移到其他的代码片段里。
代码中总是有一部分是不稳定的,隔离这些不稳定,保证其他代码是稳定的。
变化造成了不稳定:一种是用户输入的变化,另一种是技术选型/中间件的变化。
反射
通过类可以获取一个对象,那么通过元类可以获取一个类,理解万物皆对象,万物皆可抽象。
IOC
=Interface + 工厂模式+反射
SpringBoot的目的
抽象意义:控制权交给用户
灵活的OCP