觀察者模式的經典應用 貓叫 燒開水

2021-05-08 19:42:34 字數 1009 閱讀 3309

code   燒開水

using

system;

using system.collections.generic;

using system.text;

namespace delegate

}// 可以供繼承自 heater 的類重寫,以便繼承類拒絕其他物件對它的監視

protected

virtual

void onboiled(boiledeventargs e)

}// 燒水。

public

void boilwater() }}

}// 警報器

public

class

alarm - : ", heater.area, heater.type);

console.writeline("alarm: 嘀嘀嘀,水已經 度了:", e.temperature);

console.writeline();}}

// 顯示器

public

class

display - : ", heater.area, heater.type);

console.writeline("display:水快燒開了,當前溫度:度。", e.temperature);

console.writeline();}}

class

program }}

輸出為:

alarm:china xian - realfire 001:

alarm: 嘀嘀嘀,水已經 96 度了:

alarm:china xian - realfire 001:

alarm: 嘀嘀嘀,水已經 96 度了:

alarm:china xian - realfire 001:

alarm: 嘀嘀嘀,水已經 96 度了:

display:china xian - realfire 001:

display:水快燒開了,當前溫度:96度。

觀察者模式的應用

在層與層之間如果存在著直接的相互依賴的關係,那麼可以利用觀察者模式將直接的依賴關係轉化成間接的依賴關係,並且用這種模式降低層與層之間的偶合度.class fg o sgobserver 註冊為作業系統的接收者的物件通過該介面來接收系統訊息 virtual void o essage fg messa...

觀察者模式 貓叫了,老鼠跑了,主人醒了

現在很多程式設計師在面試的時候都遇到過這個問題 貓叫了,老鼠跑了,主人醒了.實現乙個連動效果,我也遇到過,感覺這道面試題目挺經典的,挺考驗物件導向設計 ood 的能力,雖然是個很簡單的例子,但要考慮到程式的擴充套件性。比如說有新的需求,要求後面再加上狗叫了,那些寫的過死且繁瑣的 就要來次大 了 再比...

經典設計模式之觀察者模式

在物件之間定義了一對多的依賴,這樣一來,當乙個物件改變狀態,依賴它的物件會收到通知並自動更新。其實就是發布訂閱模式,發布者發布資訊,訂閱者獲取資訊,訂閱了就能收到資訊,沒訂閱就收不到資訊。zookeeper事件通知節點 訊息訂閱通知 安卓開發事件註冊 分布式配置中心等等 抽象被觀察者角色 也就是乙個...