1. 程式人生 > 其它 >Spring框架中都用到了哪些設計模式?

Spring框架中都用到了哪些設計模式?

Spring框架中都用到了哪些設計模式?

簡單工廠:由一個工廠類根據傳入的引數,動態決定應該建立哪一個產品類。
Spring中的BeanFactory就是簡單工廠模式的體現, 根據傳入一個唯一的標識來獲得Bean物件, 但是否是在傳入引數後 建立還是傳入引數前建立這不要根據具體情況來定。

工廠方法:
實現了Factory Bean介面的bean是一類叫做factory的bean, 其特點是, spring公在使用getBean()呼叫獲得該 bean時,會自動呼叫該bean的getObject() 方法, 所以返回的不是factory這個bean, 而是這個bean.getOjbect() 方法的返回值。

單例模式:保證一個類僅有一個例項,並提供一個訪問它的全域性訪問點。
spring對單例的實現: spring中的單例模式完成了後半句話, 即提供了全域性的訪問點BeanFactory, 但沒有從構造器 級別去控制單例, 這是因為spring管理的是任意的java物件。

介面卡模式:
Spring定義了一個適配介面, 使得每一種contro11er有一種對應的介面卡實現類, 讓介面卡代替contro11er執行相應 的方法。這樣在擴充套件Contro11er時, 只需要增加一個介面卡類就完成了Spring MVC的擴充套件了。

裝飾器模式:動態地給一個物件新增一些額外的職責。就增加功能來說, Decorator模式相比生成子類更為靈活。
Spring中用到的包裝器模式在類名上有兩種表現:一種是類名中含有Wrapper, 另一種是類名中含有Decorator。

動態代理:
切面在應用執行的時刻被織入, 一般情況下, 在織入切面時, AOP容器會為目標物件建立動態的建立一個代理物件。 Spring AOP就是以這種方式織入切面的。 織入:把切面應用到目標物件並建立新的代理物件的過程。

觀察者模式:
spring的事件驅動模型使用的是觀察者模式, Spring中observer模式常用的地方是Listener的實現。

策略模式:
Spring框架的資源訪問Resource介面, 該介面提供了更強的資源訪問能力, Spring框架本身大量使用了Resource 介面來訪問底層資源。