何时使用Delegate,何时使用Interface
生活随笔
收集整理的這篇文章主要介紹了
何时使用Delegate,何时使用Interface
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
委托和接口的相似點
委托和接口都允許類的設計者將聲明和實現分離開來,一個給定的接口可以被任何類或結構體繼承和實現;也可以為任何類的方法創建對應的委托,只要該方法滿足委托的簽名,委托和接口可以被一個對象使用,這個對象不必關心實現委托和接口的細節,有了這些相似點,我么什么時候使用委托?什么時候使用接口呢?
使用委托的情況
- 使用了基于事件的設計模式
- 封裝靜態方法
- 調用者無需訪問實現方法的對象的其他內容,比如屬性,方法或接口
- 簡單的組合
- 一個類想要方法的多種實現
使用接口的情況
- 一組相關的方法需要被調用
- 只需要方法的一種實現
- 需要將接口轉換為其他接口或類
- 被實現的方法鏈接到類中的某個類型,比如comparison方法
有一個使用只包含單個方法的接口而不是委托的好例子,那就是IComparable或聲明了CompareTo方法的IComparable.IComparable,該方法返回一個整型值來表示兩個同類型對象間的關系,大于,等于或者是小于。IComparable可以用作排序算法的基本比較函數,當然使用委托也可以,但是并不理想,因為比較的實現取決于類,并且比較算法運行時并不改變,一個單方法的接口就很理想。
original http://msdn.microsoft.com/en-us/library/ms173173%28v=vs.80%29.aspx
轉載于:https://www.cnblogs.com/graphics/archive/2011/02/21/1959451.html
總結
以上是生活随笔為你收集整理的何时使用Delegate,何时使用Interface的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 相当于零负担的延时程序(转)
- 下一篇: SCSI 总线和协议