1.工廠模式,這個很明顯,在各類BeanFactory以及ApplicationContext建立中都用到了;html
2.模版模式,這個也很明顯,在各類BeanFactory以及ApplicationContext實現中也都用到了;性能
3.代理模式,在Aop實現中用到了JDK的動態代理;代理
4.單例模式,這個好比在建立bean的時候。htm
5.Tomcat中有不少場景都使用到了外觀模式,由於Tomcat中有不少不一樣的組件,每一個組件須要相互通訊,但又不能將本身內部數據過多地暴露給其餘組件。用外觀模式隔離數據是個很好的方法。對象
6.策略模式在Java中的應用,這個太明顯了,由於Comparator這個接口簡直就是爲策略模式而生的。Comparable和Comparator的區別一文中,詳細講了Comparator的使用。比方說Collections裏面有一個sort方法,由於集合裏面的元素有多是複合對象,複合對象並不像基本數據類型,能夠根據大小排序,複合對象怎麼排序呢?基於這個問題考慮,Java要求若是定義的複合對象要有排序的功能,就自行實現Comparable接口或Comparator接口.blog
7.原型模式:使用原型模式建立對象比直接new一個對象在性能上好得多,由於Object類的clone()方法是一個native方法,它直接操做內存中的二進制流,特別是複製大對象時,性能的差異很是明顯。排序
8.迭代器模式:Iterable接口和Iterator接口 這兩個都是迭代相關的接口,能夠這麼認爲,實現了Iterable接口,則表示某個對象是可被迭代的;Iterator接口至關因而一個迭代器,實現了Iterator接口,等於具體定義了這個可被迭代的對象時如何進行迭代的接口