Spring启示录
大约 2 分钟
软件开发原则
OCP 原则
OCP原则(开闭原则):在软件开发过程中应当对扩展开放,对修改关闭。也就是说,如果在进⾏功能扩展的时候,添加额外的类是没问题的,但因为功能扩展⽽修改之前运 ⾏正常的程序,这是忌讳的,不被允许的。
DIP 原则
DDP原则:依赖倒置原则(Dependence Inversion Principle),倡导面向抽象编程、面向接口编程,不要面向具体编程。
- DIP原则不仅仅是要求提供一个对外的接口,而且在使用接口的实现类时,也要避免写死在程序里。
// 不符合DIP,写死了实现类
private UserDao userDao = new UserDaoImplA();
// 符合DIP
private UserDao userDao;
// 具体的实现类由“配置”决定,不写死在程序里贯彻OCP、DIP原则,需要解决两个核心问题:
- 谁来负责对象的创建(谁来new)
- 谁来负责把创建的对象赋值给到这个属性上(new完了谁来赋值)
在Spring框架中,它可以帮助我们new对象,并且它还可以将new出来的对象赋到属性上。换句话说, Spring框架可以帮助我们创建对象,并且可以帮助我们维护对象和对象之间的关系。
IoC 思想
IoC:控制反转(Inversion of Control),是⾯向对象编程中的⼀种设计思想,可以⽤来降低代码 之间的耦合度,使程序符合依赖倒置原则。
Ioc 思想的核心:将对象的创建权交出去,将对象和对象之间关系的管理权交出去,由第三方容器来负责创建与维护。
Ioc 的理论和成熟时间相对较晚,没有包含在 GoF 23中设计模式中,因此可以看做是一种新兴的设计模式。
Ioc 思想有着多种实现方式,常见的是 依赖注入(DI)。
DI
DI:依赖注入(Dependence Injection)。是 Ioc 思想的常用实现方式。
DI 包括两种注入的实现方式:
- set 方法注入
- 构造方法注入
