spring中用到的設計模式

1.工廠模式,在各類BeanFactory以及ApplicationContext建立中都用到了;java

2.模版模式,在各類BeanFactory以及ApplicationContext實現中也都用到了;spring

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」 來指定。server

6.適配器,在Spring的Aop中,使用的Advice(通知)來加強被代理類的功能。Spring實現這一AOP功能的原理就使用代理模式(一、JDK動態代理。二、CGLib字節碼生成技術代理。)對類進行方法級別的切面加強,即,生成被代理類的代理類, 並在代理類的方法前,設置攔截器,經過執行攔截器重的內容加強了代理方法的功能,實現的面向切面編程。對象

7.觀察者模式,spring中Observer模式經常使用的地方是listener的實現。如ApplicationListener。資源

8.策略模式,spring中在實例化對象的時候用到Strategy模式,在SimpleInstantiationStrategy中有體現。 io

相關文章
相關標籤/搜索