何时使用委托而不使用接口
生活随笔
收集整理的這篇文章主要介紹了
何时使用委托而不使用接口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
委托和接口都允許類設計器分離類型聲明和實現。給定的接口可由任何類或結構繼承和實現;可以為任何類中的方法創建委托,前提是該方法符合委托的方法簽名。接口引用或委托可由不了解實現該接口或委托方法的類的對象使用。既然存在這些相似性,那么類設計器何時應使用委托,何時又該使用接口呢?
在以下情況中使用委托:
當使用事件設計模式時。
當封裝靜態方法可取時。
當調用方不需要訪問實現該方法的對象中的其他屬性、方法或接口時。
需要方便的組合。
當類可能需要該方法的多個實現時。
在以下情況中使用接口:
當存在一組可能被調用的相關方法時。
當類只需要方法的單個實現時。
當使用接口的類想要將該接口強制轉換為其他接口或類類型時。
當正在實現的方法鏈接到類的類型或標識時:例如比較方法。
使用單一方法接口而不使用委托的一個很好的示例是?IComparable?或?IComparable。IComparable?聲明?CompareTo?方法,該方法返回一個整數,以指定相同類型的兩個對象之間的小于、等于或大于關系。IComparable?可用作排序算法的基礎,雖然將委托比較方法用作排序算法的基礎是有效的,但是并不理想。因為進行比較的能力屬于類,而比較算法不會在運行時改變,所以單一方法接口是理想的。
在以下情況中使用委托:
當使用事件設計模式時。
當封裝靜態方法可取時。
當調用方不需要訪問實現該方法的對象中的其他屬性、方法或接口時。
需要方便的組合。
當類可能需要該方法的多個實現時。
在以下情況中使用接口:
當存在一組可能被調用的相關方法時。
當類只需要方法的單個實現時。
當使用接口的類想要將該接口強制轉換為其他接口或類類型時。
當正在實現的方法鏈接到類的類型或標識時:例如比較方法。
使用單一方法接口而不使用委托的一個很好的示例是?IComparable?或?IComparable。IComparable?聲明?CompareTo?方法,該方法返回一個整數,以指定相同類型的兩個對象之間的小于、等于或大于關系。IComparable?可用作排序算法的基礎,雖然將委托比較方法用作排序算法的基礎是有效的,但是并不理想。因為進行比較的能力屬于類,而比較算法不會在運行時改變,所以單一方法接口是理想的。
轉載于:https://www.cnblogs.com/RuiLei/archive/2007/03/30/694324.html
總結
以上是生活随笔為你收集整理的何时使用委托而不使用接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 携手Zen 4!AMD平价新U锐龙600
- 下一篇: 通过简易的前台代码实现无限二级域名转向(