大話OO之解析委托[2] 軟件測試
關鍵字:oo 有了回調函數后,操作系統只需要將用戶所觸發的消息發往回調函數,而不需要管該發什么,該發給誰,而全部由應用的回調函數來決定由誰處理,這樣操作系統與應用程序的耦合程度便大大降低了,操作系統不需要知道應用程序的結構,而應用程序必須提供一個與操作系統約定好了格式的回調函數。
根據委托人不做事情,而由被委托人來做,可以判斷出回調函數的身份是“委托人”,而回調函數中調用的方法則是真正做事情的“被委托人”。那么在.NET中干脆去掉了WIN32種讓人費解的回調函數,而采用了委托來處理操作系統發送過來的消息。
在.NET的Windows程序中,向窗體中的控件添加一個事件就會產生一條代碼,如:this.button1.Click += new System.EventHandler(this.button1_Click);
委托在.NET的事件處理程序中被隱含的定義,我們看不到定義的代碼,但是操作系統將消息發送給程序的時候不需要知道程序處理方法的名稱,他只需要大喊一聲“某某鍵被按下拉!”,就會由相應的委托接受到消息,并觸發委托對應的方法的執行。跟回調函數不同,委托并不是將所有的消息都接受,并可以調用不同的方法。委托只能調用格式相同的方法,如果要委托既能調用一個參數的方法又能調用多個參數的方法則行不通。
在.NET中,委托已經由應用程序框架定義好了,我們只需要編寫處理方法,并使用委托的+=操作符將委托人與被委托人聯系起來就可以,當然一個委托人可以找多個被委托人,一個被委托人也可以接受多個委托人的委托。
文章來源于領測軟件測試網 http://www.kjueaiud.com/