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事件通知節點 訊息訂閱通知 安卓開發事件註冊 分布式配置中心等等 抽象被觀察者角色 也就是乙個...