目地:通過呼叫貓叫的方法,聯動鼠逃和人醒
設計:public
delegate
void dosomethings();
class cat
public
void cry()
}設計乙個委託,同時在貓類中宣告乙個該型別的事件,在貓叫這個方法裡面觸發這個事件。
abstract
class observerbase
protected
abstract
void act();
}宣告乙個觀察者基類,同時宣告乙個貓物件,在建構函式中給貓物件的貓叫事件增加乙個處理方法act。但是act方法是乙個抽象方法,具體處理由擴充套件類自己去處理,這樣就為貓叫事件的處理增加了擴充套件性,使得不同的觀察者可以對同乙個事件產生不同的處理方法。
class mouse:observerbase
protected
override
void act()
}宣告乙個老鼠類,繼承自觀察者基類,在構造時,呼叫基類構造方法,同時給自己賦值。覆蓋基類的act方法,從而使得老鼠對於貓叫事件有了自己的處理。
class person : observerbase
protected
override
void act()
}宣告乙個人類,同樣繼承自觀察者基類,在構造時,也呼叫基類構造方法,同時給自己賦值。覆蓋基類的act方法,從而使得人對於貓叫事件有了自己的處理。
class program
}最後是主程式。
執行結果:
貓叫,老鼠逃,人醒
using system using system.collections.generic using system.text namespace delegateevent public string name set public delegate void calleventhandler o...
C 的委託及事件 貓叫人醒老鼠跑
原文 昨天進行了一下培訓,講解了一下委託跟事件的應用,說實話這個東西聽起來還是一頭霧水,雖然學會怎麼用,但是還沒搞明白需要在什麼時候用到這個,後來我們經理給我舉了個例子,讓我做乙個經典的委託和事件的例子,就是貓叫人醒老鼠跑。首先很簡單,需要定義貓,人跟老鼠三個類,分別命名為cat,people,mo...
關於貓叫 老鼠逃跑 人被驚醒的程式設計
要求 1 要有聯動性,老鼠和人的行為是被動的 2 考慮可擴充套件行,貓叫聲可能會引起其他聯動效應 看到這個程式設計題目,我的第一反應是用事件來解決,貓叫觸發了事件,引起了老鼠的逃跑,老鼠逃跑又觸發了事件導致主人被驚醒。所以按照這個思路,我做出了如下的解答。首先,將貓 老鼠 和人分別抽象出來為三個類,...