委托是粒度更细的接口

委托是粒度更细的接口

接口(interface)是面向类(class)的,而委托(delegate)是面向方法(method)和属性(property)。接口必须应用在类上面,而委托却是应用在方法和属性上。

当方法的参数是委托类型时,因为匿名委托的存在,使得调用更简便——这个时候方法就是属性,直接赋值给参数即可。

委托使得“外界约束外界契约”的影响力缩小到一个方法上,而不是像接口那样影响整个类。

委托是允许继承的,即意味着委托有多态的功能,比如在把委托用于策略模式。

 

MSDN中,将class, delegate,interface并列为.net中的三大类型(type),只是delegateinterface粒度更细。微软在相关文档中指出,能用delegate完成的,都能用interface代替。

posted @ 2009-09-10 00:03  深圳大漠  阅读(158)  评论(0编辑  收藏  举报