貓叫,鼠逃,人醒

2021-04-21 11:53:03 字數 789 閱讀 6670

目地:通過呼叫貓叫的方法,聯動鼠逃和人醒

設計: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 考慮可擴充套件行,貓叫聲可能會引起其他聯動效應 看到這個程式設計題目,我的第一反應是用事件來解決,貓叫觸發了事件,引起了老鼠的逃跑,老鼠逃跑又觸發了事件導致主人被驚醒。所以按照這個思路,我做出了如下的解答。首先,將貓 老鼠 和人分別抽象出來為三個類,...