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

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

2022-06-13   來源: Java高級技術 

  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/27767.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.