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

經典:從追MM談Java的23種設計模式[3]

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

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

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

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

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

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

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

    我我買我買還有嗎?

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

    我我買我買還有嗎?

    Mary我看上那輛法拉利跑車

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

    ……

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

  MEDIATOR—四個MM打麻將相互之間誰應該給誰多少錢算不清楚了幸虧當時我在旁邊按照各自的籌碼數算錢賺了錢的從我這 裡拿賠了錢的也付給我一切就OK啦俺得到了四個MM的電話

    調停者模式調停者模式包裝了一系列對象相互作用的方式使得這些對象不必相互明顯作用從而使他們可以松散偶合當某些 對象之間的作用發生改變時不會立即影響其他的一些對象之間的作用保證這些作用可以彼此獨立的變化調停者模式將多對多的相互作用 轉化為一對多的相互作用調停者模式將對象的行為和協作抽象化把對象在小尺度的行為上與其他對象的相互作用分開處理

  MEMENTO—同時跟幾個MM聊天時一定要記清楚剛才跟MM說了些什麼話不然MM發現了會不高興的哦幸虧我有個備忘錄剛才與 哪個MM說了什麼話我都拷貝一份放到備忘錄裡面保存這樣可以隨時察看以前的記錄啦

    備忘錄模式備忘錄對象是一個用來存儲另外一個對象內部狀態的快照的對象備忘錄模式的用意是在不破壞封裝的條件下將一 個對象的狀態捉住並外部化存儲起來從而可以在將來合適的時候把這個對象還原到存儲起來的狀態

  OBSERVER—想知道咱們公司最新MM情報嗎?加入公司的MM情報郵件組就行了tom負責搜集情報他發現的新情報不用一個一個通知 我們直接發布給郵件組我們作為訂閱者(觀察者)就可以及時收到情報啦

    觀察者模式觀察者模式定義了一種一隊多的依賴關系讓多個觀察者對象同時監聽某一個主題對象這個主題對象在狀態上發生 變化時會通知所有觀察者對象使他們能夠自動更新自己

  STATE—跟MM交往時一定要注意她的狀態哦在不同的狀態時她的行為會有不同比如你約她今天晚上去看電影對你沒興趣的 MM就會說有事情啦對你不討厭但還沒喜歡上的MM就會說好啊不過可以帶上我同事麼?已經喜歡上你的MM就會說幾點鐘?看完電 影再去泡吧怎麼樣?當然你看電影過程中表現良好的話也可以把MM的狀態從不討厭不喜歡變成喜歡哦

    狀態模式狀態模式允許一個對象在其內部狀態改變的時候改變行為這個對象看上去象是改變了它的類一樣狀態模式把所研究 的對象的行為包裝在不同的狀態對象裡每一個狀態對象都屬於一個抽象狀態類的一個子類狀態模式的意圖是讓一個對象在其內部狀態改變 的時候其行為也隨之改變狀態模式需要對每一個系統可能取得的狀態創立一個狀態類的子類當系統的狀態變化時系統便改變所選的子 類

  STRATEGY—跟不同類型的MM約會要用不同的策略有的請電影比較好有的則去吃小吃效果不錯有的去海邊浪漫最合適單目 的都是為了得到MM的芳心我的追MM錦囊中有好多Strategy哦

    策略模式策略模式針對一組算法將每一個算法封裝到具有共同接口的獨立的類中從而使得它們可以相互替換策略模式使得 算法可以在不影響到客戶端的情況下發生變化策略模式把行為和環境分開環境類負責維持和查詢行為類各種算法在具體的策略類中提供 由於算法和環境獨立開來算法的增減修改都不會影響到環境和客戶端

  TEMPLATE METHOD——看過《如何說服女生上床》這部經典文章嗎?女生從認識到上床的不變的步驟分為巧遇打破僵局展開追求 接吻前戲動手愛撫進去八大步驟(Template method)但每個步驟針對不同的情況都有不一樣的做法這就要看你隨機應變啦(具 體實現);

    模板方法模式模板方法模式准備一個抽象類將部分邏輯以具體方法以及具體構造子的形式實現然後聲明一些抽象方法來迫使 子類實現剩余的邏輯不同的子類可以以不同的方式實現這些抽象方法從而對剩余的邏輯有不同的實現先制定一個頂級邏輯框架而將邏 輯的細節留給具體的子類去實現

  VISITOR—情人節到了要給每個MM送一束鮮花和一張卡片可是每個MM送的花都要針對她個人的特點每張卡片也要根據個人的 特點來挑我一個人哪搞得清楚還是找花店老板和禮品店老板做一下Visitor讓花店老板根據MM的特點選一束花讓禮品店老板也根據每個 人特點選一張卡這樣就輕松多了;

    訪問者模式訪問者模式的目的是封裝一些施加於某種數據結構元素之上的操作一旦這些操作需要修改的話接受這個操作的數 據結構可以保持不變訪問者模式適用於數據結構相對未定的系統它把數據結構和作用於結構上的操作之間的耦合解脫開使得操作集合可 以相對自由的演化訪問者模式使得增加新的操作變的很容易就是增加一個新的訪問者類訪問者模式將有關的行為集中到一個訪問者對象 中而不是分散到一個個的節點類中當使用訪問者模式時要將盡可能多的對象浏覽邏輯放在訪問者類中而不是放到它的子類中訪問者 模式可以跨過幾個類的等級結構訪問屬於不同的等級結構的成員類

[]  []  []  


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