spring中用到的设计模式

1.工厂模式,在各种BeanFactory以及ApplicationContext创建中都用到了;

2.模版模式,在各种BeanFactory以及ApplicationContext实现中也都用到了;

3.代理模式,spring的Proxy模式在aop中有体现,比如JdkDynamicAopProxy和Cglib2AopProxy;

4.策略模式,第一个地方,加载资源文件的方式,使用了不同的方法,比如:ClassPathResourece,FileSystemResource,ServletContextResource,UrlResource但他们都有共同的借口Resource;第二个地方就是在Aop的实现中,采用了两种不同的方式,JDK动态代理和CGLIB代理;

5.单例模式,这个比如在创建bean的时候,保证一个类仅有一个实例,并提供一个访问它的全局访问点。
spring中的单例模式完成了后半句话,即提供了全局的访问点BeanFactory。但没有从构造器级别去控制单例,这是因为spring管理的是是任意的java对象。Spring下默认的bean均为singleton,可以通过singleton=“true|false” 来指定。

6.适配器,在Spring的Aop中,使用的Advice(通知)来增强被代理类的功能。Spring实现这一AOP功能的原理就使用代理模式(1、JDK动态代理。2、CGLib字节码生成技术代理。)对类进行方法级别的切面增强,即,生成被代理类的代理类, 并在代理类的方法前,设置拦截器,通过执行拦截器重的内容增强了代理方法的功能,实现的面向切面编程。

7.观察者模式,spring中Observer模式常用的地方是listener的实现。如ApplicationListener。

8.策略模式,spring中在实例化对象的时候用到Strategy模式,在SimpleInstantiationStrategy中有体现。

猜你喜欢

转载自www.cnblogs.com/songjn/p/9143889.html