IoC&DI
inverse of control(控制反转)&dependancy injection(依赖注入)
这两个概念很好的阐述了spring的面向接口编程机制。
所谓控制反转就是说把Action对DAO的控制角色反转为IoC容器对Action的被控角色。也就是说在我们没有采用面向接口编程的时候,我们往往是直接在Action中NEW一个DAO对象,这样一来DAO就被Action控制着,此时Action扮演的就是控制者的角色。而当我们采用面向接口编程时(spring),我们就在spring的配置文件中实现Action与DAO的依赖关系,此时Action与DAO就同时被IoC容器控制着,那么Action扮演的就是被控者的角色了。
所谓依赖注入就是说必须存在一个桥梁的架设过程,也就是我们通常在Action中定义的set方法,这个方法将接口这个桥梁架在了Action与DAO中间,形成互通。
模板方法模式
spring 采用的模式也就是模板方法模式,所谓模板方法模式简单说就是父类完全控制着子类的业务逻辑,而子类根据不同的业务对父类的所有抽象方法进行实现。
模板方法模式的使用情形:知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。
模板方法模式的使用方法:定义一个abstract的Class,在这个抽象类中,至少包括一个实现模板方法的不可被子类改写的Public方法(需声明为final),在这个公共方法中,实现模板方法的业务处理逻辑,同时,在这个方法中,还包括一些对本类中的抽象方法的调用; 再根据业务的需要,定义各种不同的子类,并实现模板方法类的所有抽象方法。