正常的三层架构违背了OCP开闭原则,DIP依赖倒置原则
OCP核心原则为:只要你在扩展系统功能的时候,没有修改过以前写好的代码,就负责OCP原则,反之,如果在扩展系统功能的时候,修改了,则这个设计是失败的
DIP原则:面向接口编程,面向抽象编程,解耦合
可以采用控制反转IoC来解决:
1.不在程序中采用硬编码的方式来new对象(new 对象我不管了)
2.不在程序中采用硬编码的方式来维护对象的关系了(对象之间的维护权也不管了)
Spring框架实现了IoC这种思想,可以帮助new对象,维护对象和对象之间的关系,Spring是一个实现了IoC思想的容器
控制反转的实现方式有多种,其中比较重要的叫做依赖注入DI
依赖注入常见方式:set注入(执行set方法给属性赋值),构造方法注入
依赖是A对象和B对象的关系,注入是通过这种手段,可以让A对象和B对象产生关系
每一个被Spring控制的对象叫做Bean,Spring也是一种容器