IOC、DI、DIP

OCP: 开闭原则  对修改关闭  对扩展开放

1、面向对象主要做俩件事:实例化对象和调用方法(完成业务逻辑)

2、单纯interface可以统一方法的调用,但是不能统一对象的实例化

3、只有一段代码中没有new的出现,才能保持代码的相对稳定,才能逐步实现OCP

要想保持代码的稳定,就不应该实例化对象

把实例化隔离到其他地方

实例化对象:以前是用的工厂模式(就是抽象化对象,然后每个对象单独进行实例化)和反射,现在最好的IOC和DI(这俩个不一样)

 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。(不懂)

工厂模式+反射不是IOC和DI

spring IOC也是用的工厂模式+反射思想,但是要更完善

IOC创建对象只创建一次,然后就放到缓存中

DIP: 依赖倒置  细节依赖抽象(不重要)

DI: 依赖注入   面向对象的项目就是对象之间产生相互的作用,对象与对象之间的作用必定会产生依赖,依赖是不可避免的,但是产生依赖的方式多种多样,

最普通的方法就是new一个对象,这种不好,因为new表示代码不稳定

最好的是对象由容器来创建,然后把对象注入到使用的对象里

最常用的是属性注入和构造注入

 

猜你喜欢

转载自www.cnblogs.com/zhaobao1830/p/12080167.html
今日推荐