您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
03 java訂閱發布者模式(java 設計模式之 觀察者模式(Observer))
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-03 21:49:27【】2人已围观
简介的類一樣。狀態模式把所研究的對象的行為包裝在不同的狀態對象里,每一個狀態對象都屬于一個抽象狀態類的一個子類。狀態模式的意圖是讓一個對象在其內部狀態改變的時候,其行為也隨之改變。狀態模式需要對每一個系統
21、STRATEGY—跟不同類型的MM約會,要用不同的策略,有的請電影比較好,有的則去吃小吃效果不錯,有的去海邊浪漫最合適,單目的都是為了得到MM的芳心,我的追MM錦囊中有好多Strategy哦。
策略模式:策略模式針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,從而使得它們可以相互替換。策略模式使得算法可以在不影響到客戶端的情況下發生變化。策略模式把行為和環境分開。環境類負責維持和查詢行為類,各種算法在具體的策略類中提供。由于算法和環境獨立開來,算法的增減,修改都不會影響到環境和客戶端。
22、TEMPLATE METHOD——看過《如何說服女生上床》這部經典文章嗎?女生從認識到上床的不變的步驟分為巧遇、打破僵局、展開追求、接吻、前戲、動手、愛撫、進去八大步驟(Template method),但每個步驟針對不同的情況,都有不一樣的做法,這就要看你隨機應變啦(具體實現);
模板方法模式:模板方法模式準備一個抽象類,將部分邏輯以具體方法以及具體構造子的形式實現,然后聲明一些抽象方法來迫使子類實現剩余的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩余的邏輯有不同的實現。先制定一個頂級邏輯框架,而將邏輯的細節留給具體的子類去實現。
23、VISITOR—情人節到了,要給每個MM送一束鮮花和一張卡片,可是每個MM送的花都要針對她個人的特點,每張卡片也要根據個人的特點來挑,我一個人哪搞得清楚,還是找花店老板和禮品店老板做一下Visitor,讓花店老板根據MM的特點選一束花,讓禮品店老板也根據每個人特點選一張卡,這樣就輕松多了;
訪問者模式:訪問者模式的目的是封裝一些施加于某種數據結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的數據結構可以保持不變。訪問者模式適用于數據結構相對未定的系統,它把數據結構和作用于結構上的操作之間的耦合解脫開,使得操作集合可以相對自由的演化。訪問者模式使得增加新的操作變的很容易,就是增加一個新的訪問者類。訪問者模式將有關的行為集中到一個訪問者對象中,而不是分散到一個個的節點類中。當使用訪問者模式時,要將盡可能多的對象瀏覽邏輯放在訪問者類中,而不是放到它的子類中。訪問者模式可以跨過幾個類的等級結構訪問屬于不同的等級結構的成員類。
設計模式-快餐簡解-【觀察者模式】
【 觀察者模式應用場景舉例 】
比如在玩 極品飛車 這款游戲 每一個車手到達終點的時候 都會在其它車手的屏幕上顯示 某某人以多少時間到達終點的提示 其實這就是一個典型的觀察者模式的應用 觀察者模式即是典型的雙向一對多的應用場景下用一的一端來通知多的一端
【 觀察者 模式解釋】
類型 行為模式
定義了一種一對多的依賴關系 讓多個觀察者對象同時監聽某一個主題對象 這個主題對象的狀態發生改變時 會通知所有的觀察者對象 使它們能夠自己更新自己
【 觀察者 模式UML圖】
【 觀察者 模式 JAVA代碼實現】
新建抽象發布通知父類
package carer_subject;import java util ArrayList;import java util List;import carer_observer carer_observer;public interface carer_subject_parent { public void set_state(String state_string); public String get_state(); public void add_observer(carer_observer carer_observer_ref); public void sub_observer(carer_observer carer_observer_ref); public void notityAllCarer();}
新建發布通知實現類
package carer_subject;import java util ArrayList;import java util List;import carer_observer carer_observer;public class carer_subject_sub implements carer_subject_parent { List<carer_observer> list_observer = new ArrayList<carer_observer>(); private String state; public void set_state(String state_string) { this state = state_string; } public String get_state() { return state; } public void add_observer(carer_observer carer_observer_ref) { list_observer add(carer_observer_ref); } public void sub_observer(carer_observer carer_observer_ref) { list_observer remove(carer_observer_ref); } public void notityAllCarer() { state = 到達終點 ; for (int i = ; i < list_observer size(); i++) { list_observer get(i) show_info(); } }}
新建觀察者接口
package carer_observer;import carer_subject carer_subject_parent;public interface carer_observer { public void show_info();}
新建觀察者實現類
package carer_observer;import carer_subject carer_subject_parent;public class carer_observer_imple implements carer_observer { private carer_subject_parent carer_subject_parent_ref; public carer_subject_parent getCarer_subject_parent_ref() { return carer_subject_parent_ref; } public void setCarer_subject_parent_ref( carer_subject_parent carer_subject_parent_ref) { this carer_subject_parent_ref = carer_subject_parent_ref; } public carer_observer
很赞哦!(51)
相关文章
- 03 youtube android 買粉絲 download manager插件安裝不了(手機錄像相機軟件哪個好)
- 03 youtube 1萬播放量收益多少(B 站付費視頻使 up 主掉粉過萬,你能否接受視頻付費?)
- 03 黃金貿易公司需要什么資質證書(香港金銀業貿易場是正規的黃金交易所嗎?)
- 04 2018年全國外經貿單證專業培訓考試單證繕制與操作答案(2006年度6月國際商務單證員《繕制與操作》真題含答案)
- 04 2020年外貿出口額top100企業(未來各大行業的發展趨勢在哪里?)
- 04 1914年上海外灘發生了什么大事(1943年的上海發生了什么事情)
- 03 鼓浪嶼網紅店的創意(網紅打卡是什么意思)
- 03 youtube download android app apk(“華為連接服務”是什么,能卸載嗎)
- 03 youtube app download for windows 10 microsoft(用什么工具可以把正在放的視頻下到本地?)
- 03 youtube dl只下載音頻(在Ubuntu上有什么必裝的實用軟件?)
热门文章
站长推荐
03 youtube dl不能使用(亞運會LOL為什么不能看)
04 2020年全球商品貿易總量比2019年下降多少(假如美國一口氣“印鈔”28萬億,把欠的債都還了,會發生什么?)
04 2020十大國際貿易事件(再看一眼2020年,這十大關鍵詞你還記得嗎?)
03 youtube a mp3 320kbps download x2(什么是RMVB)
04 2022世界軍火貿易前10(近代美國經濟什么時候超過英國?)
03 youtube art and craft(手工制作用英語怎么說翻譯及閱讀)
04 1至7月外貿進出口情況(2009年我國第三季度(7,8,9月)進出口貿易狀況,呈現出什么特點。大神們幫幫忙)
03 wto貿易原則包括什么(世貿組織的原則有哪些?)