Java設計模式彙總,持續更新中

一直想系統的學習設計模式,但是由於各種原因(藉口什麼的),時間有限,人比較笨,自以爲是等等,都沒有系統開始。

離找工作還有一年的時間,要在這一年的時間裏面完全的靠個人來閱讀體會各種設計模式有點困難,更別提爲每一篇設計模式都寫一篇博客,時間上好像有點困難。

所以將自己學習的各種設計模式的博文、網頁等資料彙總在這裏,以後有什麼新的感想再開新篇好了    ↖(^ω^)↗



1、責任鏈模式

http://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html

這篇博文寫的簡單易懂,同時結合tomcat的filter來具體講解,很不錯。

2014-09-01

嗯,今天又回想起了chain of responsibility,思路還是很清晰的,哈哈
2014-09-03

2、策略模式

 http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html

又是這位的博文  :-(  真羨慕這些能夠把學到的東西講解得這麼透徹的大牛們,大牛這麼多,讓我們這些小菜鳥怎麼活    ~~~~(>_<)~~~~

感覺設計模式什麼的,還是要堅持學習,細細體會,畢竟是教我們怎麼編程的東西,只有與實際結合才能真正掌握,不然學了就忘,kill me..

 2014-09-02

空想了一下strategy,卻怎麼也想不出來它的具體內容,悲催,又重新看了一遍:strategy是將一系列的算法的封裝到一個共同的接口中,使算法可以相互替代。使得算法在不影響客戶端程序的前提下發生改變。  三個角色:context角色(持有對strategy對象的引用,被客戶端調用)、strategy角色:抽象策略角色、concretestrategy:具體策略角色。果然,責任道遠①,下回應該能回想起來吧。
2014-09-03

3、 簡單工廠模式(又:靜態工廠模式)


1、核心思想:
有一個專門的類來負責創建實例的過程

2、優點:
簡化了客戶端邏輯;

3、缺點:
1、工廠類瓶頸:工廠類集中了所有實例的創建邏輯,這就直接導致一旦這個工廠出了問題,所有的客戶端都會受到牽連;
2、違背了單一職責:工廠類內部包含了太多的邏輯;
3、最重要的問題:違背了OCP,當產品增加時,需要求改工廠類的邏輯;

4、例子(JDBC):

http://blog.csdn.net/weiwenlongll/article/details/6918164

這篇文章介紹了簡單工廠模式,並舉了JDBC的例子

http://www.cnblogs.com/java-my-life/archive/2012/03/22/2412308.html

這篇文章,出乎意料的寫得有點簡陋,本想看看有什麼切實的應用場景的,不過語言比較流暢,看起來也不怎麼費力

 

4、 工廠方法模式(又:虛擬構造子模式、多態性工廠模式)

http://www.cnblogs.com/java-my-life/archive/2012/03/25/2416227.html

這篇博文寫的一般,建議直接看百度百科:http://baike.baidu.com/view/1580263.htm?fr=aladdin

工廠方法模式解決了簡單工廠模式不符合OCP的問題

2014-09-03

既然簡單工廠模式的客戶端對工廠依賴太過了,工廠的邏輯太複雜了,那我多建幾個工廠,幾個工廠分工總行了吧。新的品種出來了,我建一個新的工廠就好啦,不影響其他的使用,(~ o ~)~zZ

2014-09-05

 

5、 抽象工廠模式

http://www.cnblogs.com/cbf4life/archive/2009/12/23/1630612.html

http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html

老實說,看完上面這仨,我的腦袋快宕機了難過難過難過,這周就到此爲止了。下週再開始新的。

回顧回顧,好記性,不如爛筆頭,多敲幾遍  ↖(^ω^)↗ 

2014-09-03

(⊙o⊙)… 又回顧了一邊UML,今天又看了一遍設計模式,困惑感少了很多。

2014-09-05


6、單例模式

心癢癢,又看了一個設計模式,這篇文章寫得很好呀!
2014-09-05
講解了餓漢方式、懶漢方式、雙重加鎖機制的懶漢方式、lazy init holder方式(利用類級內部類+多線程默認同步鎖的有關知識)、枚舉方式等
2014-09-15


7、建造者模式

好幾天沒有更新這篇博客了,因爲最近老闆逼得緊。。還有一個原因是想要學的建造者模式一直感覺不能理解。
所以先把《大話設計模式》的Builder模式相關章節看了一遍,終於,略有體會
還看了其他一些資料:

2014-09-10
在軟件系統中,有時會面臨“一個複雜對象”的創建工作,其通常由各個部分的子對象用一定的算法構成,由於需求的變化,這個複雜對象的各個部分經常面臨着劇烈的變化,但是,將他們組合在一起的算法卻相對穩定
builder:將一個複雜對象的構建與其表現相分離,使得同樣的構建過程可以創建不同的表示(GoF)
2014-09-21

8、觀察者模式

2014-09-19

9、模板方法模式


模板方法模式是一種簡單實用的模式:在父類中指定處理大綱,在子類中規定具體內容。涉及抽象模板、具體模板兩個對象。是基於繼承的代碼複用的基本技術
模板方法中的方法可以分爲兩大類:模板方法和基本方法。

  模板方法

  一個模板方法是定義在抽象類中的,把基本操作方法組合在一起形成一個總算法或一個總行爲的方法。

  一個抽象類可以有任意多個模板方法,而不限於一個。每一個模板方法都可以調用任意多個具體方法。

  基本方法

  基本方法又可以分爲三種:抽象方法(Abstract Method)、具體方法(Concrete Method)和鉤子方法(Hook Method)。

  ●  抽象方法:一個抽象方法由抽象類聲明,由具體子類實現。在Java語言裏抽象方法以abstract關鍵字標示。

  ●  具體方法:一個具體方法由抽象類聲明並實現,而子類並不實現或置換。

  ●  鉤子方法:一個鉤子方法由抽象類聲明並實現,而子類會加以擴展。通常抽象類給出的實現是一個空實現,作爲方法的默認實現。






http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html
2014-09-24



未完待續,(⊙o⊙)…
----------------------------------------------------------------------------------------------------


發佈了95 篇原創文章 · 獲贊 36 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章