熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

java設計模式三大塊講解

2013-11-23 19:37:53  來源: Java核心技術 
    在java的設計模式中我大意分為三塊創建型模式結構型模式行為模式對其進行了相對詳細和幽默的風格講解
   
創建型模式
   
    PROTOTYPE跟MM用QQ聊天一定要說些深情的話語了我搜集了好多肉麻的情話需要時只要copy出來放到QQ裡面就行了這就是我的情話prototype了原始模型模式通過給出一個原型對象來指明所要創建的對象的類型然後用復制這個原型對象的方法創建出更多同類型的對象原始模型模式允許動態的增加或減少產品類產品類不需要非得有任何事先確定的等級結構原始模型模式適用於任何的等級結構缺點是每一個類都必須配備一個克隆方法
   
    FACTORY追MM少不了請吃飯了麥當勞的雞翅和肯德基的雞翅都是MM愛吃的東西雖然口味有所不同但不管你帶MM去麥當勞或肯德基只管向服務員說來四個雞翅就行了麥當勞和肯德基就是生產雞翅的Factory工廠模式客戶類和工廠類分開消費者任何時候需要某種產品只需向工廠請求即可消費者無須修改就可以接納新產品缺點是當產品修改時工廠類也要做相應的修改如何創建及如何向客戶端提供
   
    FACTORY METHOD請MM去麥當勞吃漢堡不同的MM有不同的口味要每個都記住是一件煩人的事情我一般采用Factory Method模式帶著MM到服務員那兒要一個漢堡具體要什麼樣的漢堡呢讓MM直接跟服務員說就行了工廠方法模式核心工廠類不再負責所有產品的創建而是將具體創建的工作交給子類去做成為一個抽象工廠角色僅負責給出具體工廠類必須實現的接口而不接觸哪一個產品類應當被實例化這種細節
   
    SINGLETON俺有個漂亮的老婆她們的老公都是我我就是我們家裡的老公Sigleton她們只要說道老公都是指的同一個人那就是我(剛才做了個夢啦哪有這麼好的事單例模式單例模式確保某一個類只有一個實例而且自行實例化並向整個系統提供這個實例單例模式單例模式只應在有真正的單一實例的需求時才可使用
   
結構型模式
   
    BRIDGE早上碰到MM要說早上好晚上碰到MM要說晚上好碰到MM穿了件新衣服要說你的衣服好漂亮哦碰到MM新做的發型要說你的頭發好漂亮哦不要問我早上碰到MM新做了個發型怎麼說這種問題自己用BRIDGE組合一下不就行了橋梁模式將抽象化與實現化脫耦使得二者可以獨立的變化也就是說將他們之間的強關聯變成弱關聯也就是指在一個軟件系統的抽象化和實現化之間使用組合/聚合關系而不是繼承關系從而使兩者可以獨立的變化
   
    FACADE我有一個專業的Nikon相機我就喜歡自己手動調光圈快門這樣照出來的照片才專業但MM可不懂這些教了半天也不會幸好相機有Facade設計模式把相機調整到自動檔只要對准目標按快門就行了一切由相機自動調整這樣MM也可以用這個相機給我拍張照片了門面模式外部與一個子系統的通信必須通過一個統一的門面對象進行門面模式提供一個高層次的接口使得子系統更易於使用每一個子系統只有一個門面類而且此門面類只有一個實例也就是說它是一個單例模式但整個系統可以有多個門面類
   


    DECORATORMary過完輪到Sarly過生日還是不要叫她自己挑了不然這個月伙食費肯定玩完拿出我去年在華山頂上照的照片在背面寫上最好的的禮物就是愛你的Fita再到街上禮品店買了個像框(賣禮品的MM也很漂亮哦)再找隔壁搞美術設計的Mike設計了一個漂亮的盒子裝起來……我們都是Decorator最終都在修飾我這個人呀怎麼樣看懂了嗎?裝飾模式裝飾模式以對客戶端透明的方式擴展對象的功能是繼承關系的一個替代方案提供比繼承更多的靈活性動態給一個對象增加功能這些功能可以再動態的撤消增加由一些基本功能的排列組合而產生的非常大量的功能
   
    ADAPTER在朋友聚會上碰到了一個美女Sarah從香港來的可我不會說粵語她不會說普通話只好求助於我的朋友kent了他作為我和Sarah之間的Adapter讓我和Sarah可以相互交談了適配器(變壓器)模式把一個類的接口變換成客戶端所期待的另一種接口從而使原本因接口原因不匹配而無法一起工作的兩個類能夠一起工作適配類可以根據參數返還一個合適的實例給客戶端
   
行為模式
   
    MEMENTO同時跟幾個MM聊天時一定要記清楚剛才跟MM說了些什麼話不然MM發現了會不高興的哦幸虧我有個備忘錄剛才與哪個MM說了什麼話我都拷貝一份放到備忘錄裡面保存這樣可以隨時察看以前的記錄啦備忘錄模式備忘錄對象是一個用來存儲另外一個對象內部狀態的快照的對象備忘錄模式的用意是在不破壞封裝的條件下將一個對象的狀態捉住並外部化存儲起來從而可以在將來合適的時候把這個對象還原到存儲起來的狀態
   
    STRATEGY跟不同類型的MM約會要用不同的策略有的請電影比較好有的則去吃小吃效果不錯有的去海邊浪漫最合適單目的都是為了得到MM的芳心我的追MM錦囊中有好多Strategy哦策略模式策略模式針對一組算法將每一個算法封裝到具有共同接口的獨立的類中從而使得它們可以相互替換策略模式使得算法可以在不影響到客戶端的情況下發生變化策略模式把行為和環境分開環境類負責維持和查詢行為類各種算法在具體的策略類中提供由於算法和環境獨立開來算法的增減修改都不會影響到環境和客戶端
   
    COMMAND俺有一個MM家裡管得特別嚴沒法見面只好借助於她弟弟在我們倆之間傳送信息她對我有什麼指示就寫一張紙條讓她弟弟帶給我這不她弟弟又傳送過來一個COMMAND為了感謝他我請他吃了碗雜醬面哪知道他說我同時給我姐姐三個男朋友送COMMAND就數你最小氣才請我吃面:( 命令模式命令模式把一個請求或者操作封裝到一個對象中命令模式把發出命令的責任和執行命令的責任分割開委派給不同的對象命令模式允許請求的一方和發送的一方獨立開來使得請求的一方不必知道接收請求的一方的接口更不必知道請求是怎麼被接收以及操作是否執行何時被執行以及是怎麼被執行的系統支持命令的撤消
   
    OBSERVER想知道咱們公司最新MM情報嗎?加入公司的MM情報郵件組就行了tom負責搜集情報他發現的新情報不用一個一個通知我們直接發布給郵件組我們作為訂閱者(觀察者)就可以及時收到情報啦觀察者模式觀察者模式定義了一種一隊多的依賴關系讓多個觀察者對象同時監聽某一個主題對象這個主題對象在狀態上發生變化時會通知所有觀察者對象使他們能夠自動更新自己


From:http://tw.wingwit.com/Article/program/Java/hx/201311/27206.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.