2010-06-25 45 views

回答

5

problem.Thanks您可以大多想到代表爲像一個單一的方法接口。所以在沒有委託的語言(比如Java)會使用一個接口的地方,有一個委託是有意義的。

代表有超過接口下列優點:

  • 的實現可以是私有的,而實現接口的方法必須用Java是公開的。 (C#有顯式接口實現爲好。)
  • 您可以在一個類實現多個代表,甚至是相同的委託類型多次
  • 框架和語言有代表額外支持:
    • 結合在一起(和刪除它們)
    • 發佈/訂閱框架(事件)使用線程池
    • 背景調用(的BeginInvoke等)
    • Lambda表達式和匿名方法使他們很容易創建「INL INE」
    • 表達式樹,表示表達式數據中的邏輯而不是IL

代表通常用於:

  • 事件處理,例如在GUI中提供「小」行爲,例如,過濾器和投影在LINQ
  • 回調異步編程

把它們當作封裝的單件行爲的一種方式,並看到,導致你。