1. 程式人生 > >spring中用到哪些設計模式

spring中用到哪些設計模式

1.工廠模式,這個很明顯,在各種BeanFactory以及ApplicationContext建立中都用到了;

2.模版模式,這個也很明顯,在各種BeanFactory以及ApplicationContext實現中也都用到了;

3.代理模式,在Aop實現中用到了JDK的動態代理;

4.單例模式,這個比如在建立bean的時候。

5.Tomcat中有很多場景都使用到了外觀模式,因為Tomcat中有很多不同的元件,每個元件需要相互通訊,但又不能將自己內部資料過多地暴露給其他元件。用外觀模式隔離資料是個很好的方法。

6.策略模式在Java中的應用,這個太明顯了,因為Comparator這個介面簡直就是為策略模式而生的。

Comparable和Comparator的區別一文中,詳細講了Comparator的使用。比方說Collections裡面有一個sort方法,因為集合裡面的元素有可能是複合物件,複合物件並不像基本資料型別,可以根據大小排序,複合物件怎麼排序呢?基於這個問題考慮,Java要求如果定義的複合物件要有排序的功能,就自行實現Comparable介面或Comparator介面.

7.原型模式:使用原型模式建立物件比直接new一個物件在效能上好得多,因為Object類的clone()方法是一個native方法,它直接操作記憶體中的二進位制流,特別是複製大物件時,效能的差別非常明顯。

8.迭代器模式:Iterable介面和Iterator介面 

這兩個都是迭代相關的介面,可以這麼認為,實現了Iterable介面,則表示某個物件是可被迭代的;Iterator介面相當於是一個迭代器,實現了Iterator介面,等於具體定義了這個可被迭代的物件時如何進行迭代的