freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο蟪绦蛟O(shè)計(jì)設(shè)計(jì)模式論文鄧鵬輝(編輯修改稿)

2025-07-02 20:59 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 因此它們可以屬于不同的抽象化層次。如果被觀察者和觀察者都被扔到一起,那么這個(gè)對(duì)象必然跨越抽象化和具體化層次。 第二、觀察者模式支持廣播通訊。被觀察者會(huì)向所有的登記過的觀察者發(fā)出通知 。 觀察者模式有下面的缺點(diǎn): 第一、如果一個(gè)被觀察者對(duì)象有很多的直接和間接的觀察者的話,將所有的觀察者都通知到會(huì)花費(fèi)很多時(shí)間。 第二、如果在被觀察者之間有循環(huán)依賴的話,被觀察者會(huì)觸發(fā)它們之間進(jìn)行循環(huán)調(diào)用,導(dǎo)致系統(tǒng) 崩潰。在使用觀察者模式是要特別注意這一點(diǎn)。 第三、如果對(duì)觀察者的通知是通過另外的線程進(jìn)行異步投遞的話,系統(tǒng)必須保證投遞是以自恰的方式進(jìn)行的。 第四、雖然觀察者模式可以隨時(shí)使觀察者知道所觀察的對(duì)象發(fā)生了變化,但是觀察者模式?jīng)]有相應(yīng)的機(jī)制使觀察者知道所觀察的對(duì)象是怎么發(fā)生變化的 。 在本設(shè)計(jì)中,經(jīng)理需要接受點(diǎn)單,然后通知所有的服務(wù)員以及做菜的師傅。 由于點(diǎn)單要及時(shí)也要高效經(jīng)濟(jì),所以特別適用觀察者模式。 經(jīng)理為 Subject public interface ManagerSubject { public void registerObserver (WaiterObserver o)。 public void removeObserver (WaiterObserver o)。 public void notifyObservers ( )。 }//接口聲明。 以下為經(jīng)理的具體類 。 import .*。 public class Manager implements ManagerSubject { private ArrayList waiterObservers。//儲(chǔ)存訂閱者,及保存餐廳所有服務(wù)員 ,以及后面廚房的廚師 private String newOrder。//保存定單 public void Manager(){ waiterObservers = new ArrayList()。 } //通知所有的訂閱者,及及時(shí)將新的定單或修改的定單通知給所有的服務(wù)員,以及后面廚房的廚師 public void notifyObservers() { // TODO Autogenerated method stub for (int i = 0。 i ()。 i++) { WaiterObserver observer = (WaiterObserver)(i)。 (newOrder)。 } } //注冊(cè)訂閱者,及給餐廳增加服務(wù)員,以及后面廚房的廚師 public void registerObserver(WaiterObserver o) { // TODO Autogenerated method stub (o)。 } //移除訂閱者,開除服務(wù)員,以及后面廚房的廚師 public void removeObserver(WaiterObserver o) { // TODO Autogenerated method stub int i = (o)。 if (i = 0) (i)。 } //在此時(shí)調(diào)用通知方法 public void orderChanged() { notifyObservers()。 } //接收新的定單然后通知所有服務(wù)員,以及后面廚房的廚師 public void setMeasurements(String order) { = order。 orderChanged()。 } } 注釋比較清楚,注冊(cè),注銷函數(shù)。接收點(diǎn)單,發(fā)布點(diǎn)單方法均為基本方法。 服務(wù)員和廚師為 Observer public interface WaiterObserver { public void update (String newOrder)。 } 服務(wù)員 A 實(shí)現(xiàn)兩個(gè)接口, ReadOrder 接口封裝一個(gè)閱讀點(diǎn)單的方法 : public class WaiterA implements WaiterObserver, ReadOrder { private String order。 private ManagerSubject managerA。 public WaiterA(ManagerSubject managerA ) { = managerA。 (this)。 } public void update(String newOrder) { // TODO Autogenerated method stub = newOrder。 read(orde
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1