不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
何时使用委托而不使用接口
编辑:dnawo 日期:2007-12-29
委托和接口都允许类设计器分离类型声明和实现。给定的接口可由任何类或结构继承和实现;可以为任何类中的方法创建委托,前提是该方法符合委托的方法签名。接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢?
在以下情况中使用委托:
● 当使用事件设计模式时。
● 当封装静态方法可取时。
● 当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。
● 需要方便的组合。
● 当类可能需要该方法的多个实现时。
在以下情况中使用接口:
● 当存在一组可能被调用的相关方法时。
● 当类只需要方法的单个实现时。
● 当使用接口的类想要将该接口强制转换为其他接口或类类型时。
● 当正在实现的方法链接到类的类型或标识时:例如比较方法。
使用单一方法接口而不使用委托的一个很好的示例是 IComparable 或 IComparable。IComparable 声明 CompareTo 方法,该方法返回一个整数,以指定相同类型的两个对象之间的小于、等于或大于关系。IComparable 可用作排序算法的基础,虽然将委托比较方法用作排序算法的基础是有效的,但是并不理想。因为进行比较的能力属于类,而比较算法不会在运行时改变,所以单一方法接口是理想的。
在以下情况中使用委托:
● 当使用事件设计模式时。
● 当封装静态方法可取时。
● 当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。
● 需要方便的组合。
● 当类可能需要该方法的多个实现时。
在以下情况中使用接口:
● 当存在一组可能被调用的相关方法时。
● 当类只需要方法的单个实现时。
● 当使用接口的类想要将该接口强制转换为其他接口或类类型时。
● 当正在实现的方法链接到类的类型或标识时:例如比较方法。
使用单一方法接口而不使用委托的一个很好的示例是 IComparable 或 IComparable。IComparable 声明 CompareTo 方法,该方法返回一个整数,以指定相同类型的两个对象之间的小于、等于或大于关系。IComparable 可用作排序算法的基础,虽然将委托比较方法用作排序算法的基础是有效的,但是并不理想。因为进行比较的能力属于类,而比较算法不会在运行时改变,所以单一方法接口是理想的。
评论: 0 | 引用: 0 | 查看次数: 3428
发表评论
请登录后再发表评论!