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

關於Java23種設計模式的有趣見解[2]

2013-11-23 19:58:46  來源: Java高級技術 

  裝飾模式裝飾模式以對客戶端透明的方式擴展對象的功能是繼承關系的一個替代方案提供比繼承更多的靈活性動態給一個對象增加功能這些功能可以再動態的撤消增加由一些基本功能的排列組合而產生的非常大量的功能

  FACADE—我有一個專業的Nikon相機我就喜歡自己手動調光圈快門這樣照出來的照片才專業但MM可不懂這些教了半天也不會幸好相機有Facade設計模式把相機調整到自動檔只要對准目標按快門就行了一切由相機自動調整這樣MM也可以用這個相機給我拍張照片了

  門面模式外部與一個子系統的通信必須通過一個統一的門面對象進行門面模式提供一個高層次的接口使得子系統更易於使用每一個子系統只有一個門面類而且此門面類只有一個實例也就是說它是一個單例模式但整個系統可以有多個門面類

  FLYWEIGHT—每天跟MM發短信手指都累死了最近買了個新手機可以把一些常用的句子存在手機裡要用的時候直接拿出來在前面加上MM的名字就可以發送了再不用一個字一個字敲了共享的句子就是FlyweightMM的名字就是提取出來的外部特征根據上下文情況使用

  享元模式FLYWEIGHT在拳擊比賽中指最輕量級享元模式以共享的方式高效的支持大量的細粒度對象享元模式能做到共享的關鍵是區分內蘊狀態和外蘊狀態內蘊狀態存儲在享元內部不會隨環境的改變而有所不同外蘊狀態是隨環境的改變而改變的外蘊狀態不能影響內蘊狀態它們是相互獨立的將可以共享的狀態和不可以共享的狀態從常規類中區分開來將不可以共享的狀態從類裡剔除出去客戶端不可以直接創建被共享的對象而應當使用一個工廠對象負責創建被共享的對象享元模式大幅度的降低內存中對象的數量

  PROXY—跟MM在網上聊天一開頭總是hi你好你從哪兒來呀?你多大了?身高多少呀?這些話真煩人寫個程序做為我的Proxy吧凡是接收到這些話都設置好了自動的回答接收到其他的話時再通知我回答怎麼樣酷吧

  代理模式代理模式給某一個對象提供一個代理對象並由代理對象控制對源對象的引用代理就是一個人或一個機構代表另一個人或者一個機構采取行動某些情況下客戶不想或者不能夠直接引用一個對象代理對象可以在客戶和目標對象直接起到中介的作用客戶端分辨不出代理主題對象與真實主題對象代理模式可以並不知道真正的被代理對象而僅僅持有一個被代理對象的接口這時候代理對象不能夠創建被代理對象被代理對象必須有系統的其他角色代為創建並傳入

  行為模式

  CHAIN OF RESPONSIBLEITY—晚上去上英語課為了好開溜坐到了最後一排前面坐了好幾個漂亮的MM哎找張紙條寫上Hi可以做我的女朋友嗎?如果不願意請向前傳紙條就一個接一個的傳上去了糟糕傳到第一排的MM把紙條傳給老師了聽說是個老處女呀快跑!

  責任鏈模式在責任鏈模式中很多對象由每一個對象對其下家的引用而接

  起來形成一條鏈請求在這個鏈上傳遞直到鏈上的某一個對象決定處理此請求客戶並不知道鏈上的哪一個對象最終處理這個請求系統可以在不影響客戶端的情況下動態的重新組織鏈和分配責任處理者有兩個選擇承擔責任或者把責任推給下家一個請求可以最終不被任何接收端對象所接受

  COMMAND—俺有一個MM家裡管得特別嚴沒法見面只好借助於她弟弟在我們倆之間傳送信息她對我有什麼指示就寫一張紙條讓她弟弟帶給我這不她弟弟又傳送過來一個COMMAND為了感謝他我請他吃了碗雜醬面哪知道他說我同時給我姐姐三個男朋友送COMMAND就數你最小氣才請我面

  命令模式命令模式把一個請求或者操作封裝到一個對象中命令模式把發出命令的責任和執行命令的責任分割開委派給不同的對象命令模式允許請求的一方和發送的一方獨立開來使得請求的一方不必知道接收請求的一方的接口更不必知道請求是怎麼被接收以及操作是否執行何時被執行以及是怎麼被執行的系統支持命令的撤消

  INTERPRETER—俺有一個《泡MM真經》上面有各種泡MM的攻略比如說去吃西餐的步驟去看電影的方法等等跟MM約會時只要做一個Interpreter照著上面的腳本執行就可以了

  解釋器模式給定一個語言後解釋器模式可以定義出其文法的一種表示並同時提供一個解釋器客戶端可以使用這個解釋器來解釋這個語言中的句子解釋器模式將描述怎樣在有了一個簡單的文法後使用模式設計解釋這些語句在解釋器模式裡面提到的語言是指任何解釋器對象能夠解釋的任何組合在解釋器模式中需要定義一個代表文法的命令類的等級結構也就是一系列的組合規則每一個命令對象都有一個解釋方法代表對命令對象的解釋命令對象的等級結構中的對象的任何排列組合都是一個語言

  ITERATOR—我愛上了Mary不顧一切的向她求婚

  Mary想要我跟你結婚得答應我的條件

  我什麼條件我都答應你說吧

  Mary我看上了那個一克拉的鑽石

  我我買我買還有嗎?

  Mary我看上了湖邊的那棟別墅

  我我買我買還有嗎?

  Mary你的小弟弟必須要有cm長

  我腦袋嗡的一聲坐在椅子上一咬牙我剪我剪還有嗎?

  ……

  迭代子模式迭代子模式可以順序訪問一個聚集中的元素而不必暴露聚集的內部表象多個對象聚在一起形成的總體稱之為聚集聚集對象是能夠包容一組對象的容器對象迭代子模式將迭代邏輯封裝到一個獨立的子對象中從而與聚集本身隔開迭代子模式簡化了聚集的界面每一個聚集對象都可以有一個或一個以上的迭代子對象每一個迭代子的迭代狀態可以是彼此獨立的迭代算法可以獨立於聚集角色變化

[]  []  []  


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