转:spring源码也读了两遍了,但对于里面描述的关系还是不太清楚,以后再多读几遍吧,但总还有些收获的,
下面就说说spring用到的设计模式主要有哪些:
1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了;
2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了;
3.代理模式,在AOP实现中用到了JDK的动态代理;
4.策略模式,第一个地方,加载资源文件的方式,使用了不同的方法,
比如:ClassPathResourece,FileSystemResource,ServletContextResource,UrlResource但他们都有共同的接口Resource;
第二个地方就是在AOP的实现中,采用了两种不同的方式,JDK动态代理和CGLIB代理;
5.单例模式,这个比如在创建bean的时候。就说以上这些。
6.装饰模式。在AOP里面也可以认为加入了装饰模式,除了代理模式外。