Chinaunix首页 | 论坛 | 博客
  • 博客访问: 161985
  • 博文数量: 43
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 360
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-06 16:25
文章分类

全部博文(43)

文章存档

2015年(1)

2014年(12)

2008年(1)

2006年(29)

我的朋友

分类: C#/.net

2014-09-01 18:34:04

委托和接口都允许类设计器分离类型声明和实现。 任何类或结构都能继承和实现给定的接口。
可以为任何类上的方法创建委托,前提是该方法符合委托的方法签名。
接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。
既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢?

在以下情况下,请使用委托:

?当使用事件设计模式时。
?当封装静态方法可取时。
?当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。
?需要方便的组合。
?当类可能需要该方法的多个实现时。

在以下情况下,请使用接口:
?当存在一组可能被调用的相关方法时。
?当类只需要方法的单个实现时。
?当使用接口的类想要将该接口强制转换为其他接口或类类型时。
?当正在实现的方法链接到类的类型或标识时:例如比较方法。
IComparable  或泛型版本 IComparable 就是一个使用单一方法接口而不使用委托的很好的示例。
IComparable 声明 CompareTo 方法,该方法返回一个整数,指定相同类型的两个对象之间的小于、等于或大于关系。
IComparable 可用作排序算法的基础。 虽然将委托比较方法用作排序算法的基础是有效的,但是并不理想。
因为进行比较的能力属于类,而比较算法不会在运行时改变,所以单一方法接口是理想的

阅读(674) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~