控制反转IoC(Inversion of Control): 传统运用中程序之间的关系是用代码来控制的,而IOC指通过容器来控制程序之间的关系;
控制反转个人理解:因为spring都是面向接口编程和运行时才知道加载实现接口的类,平时我们编写代码来加载实现接口的类,现在只通过配置文件来实现;
依赖注入(DI = Dependency Injection): 在运行时 由容器 将依赖关系 注入到组件中。类之间的依赖关系在程序未运行时不能确定(利用接口编程的优点),即使运行了,类之间的依赖关系也是通过容器来实现的,而不是代码;
依赖注入个人理解:类之间的依赖关系,一个类A在配置文件中表明要依赖另一个B,spring则在实例化类A前,自动的实例化一个类B,并赋值个类A
依赖注入的3种类型:
1、接口注入 HttpServlet运用的就是这个思想
2、设值注入 set方法
3、构造子注入
AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。
OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。
OOP针对实体的静态行为:针对实体有哪些属性和行为
AOP针对实体的动态行为:针对实体某个动作;例如spring的事物处理
OOD/OOP面向名词领域,AOP面向动词领域
java为什么提供 接口和类???
如果很多类都有相同的动作而且动作实现相同:继承一个抽象类
如果很多类都有相同的动作,但是每个动作的实现都不同:实现接口