zoukankan
html css js c++ java
何时使用委托而不使用接口
委托和接口都允许类设计器分离类型声明和实现。给定的接口可由任何类或结构继承和实现;可以为任何类中的方法创建委托,前提是该方法符合委托的方法签名。接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢?
在以下情况中使用委托:
当使用事件设计模式时。
当封装静态方法可取时。
当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。
需要方便的组合。
当类可能需要该方法的多个实现时。
在以下情况中使用接口:
当存在一组可能被调用的相关方法时。
当类只需要方法的单个实现时。
当使用接口的类想要将该接口强制转换为其他接口或类类型时。
当正在实现的方法链接到类的类型或标识时:例如比较方法。
使用单一方法接口而不使用委托的一个很好的示例是 IComparable 或 IComparable。IComparable 声明 CompareTo 方法,该方法返回一个整数,以指定相同类型的两个对象之间的小于、等于或大于关系。IComparable 可用作排序算法的基础,虽然将委托比较方法用作排序算法的基础是有效的,但是并不理想。因为进行比较的能力属于类,而比较算法不会在运行时改变,所以单一方法接口是理想的。
查看全文
相关阅读:
Delphi泛型系列(很不错)[转静候良机]
数组的排序
数据存储到流几种形式(数据流 TStream)
[转]Delphi TStream详解
Delphi匿名方法[转 静候良机]
神一样的崇拜这个女人...打破了我对我们苦b程序员极限的了解
sql server cte语法
GdiPlus[49]: 图像(一) 概览
GdiPlus[51]: 图像(三) 关于呈现
GdiPlus[47]: IGPMatrix 矩阵(二)
原文地址:https://www.cnblogs.com/RuiLei/p/694324.html
最新文章
[恢]hdu 2047
[恢]hdu 2051
[恢]hdu 2044
[恢]hdu 1002
[恢]hdu 2046
[恢]HDU 50题斩
sqlite database browser的使用
CEGUI TEXTURE 获取 imageset里 image的像素
SSE
光照图的理论和实践
热门文章
CEGUI 动态生成 texture imageset image
什么是 .manifest 文件
cegui HorzFormatting VertFormatting 用tiled导致的效率低下
vs 快捷键
cegui 的tree支持 stringparse的link 处理
Delphi2009新特性(1):Exit方法
新产品 换delphi xe
字符串加密解 密位运算
折半查找
[转载]Delphi 2009 (Tiburon) 新特性之 VCL 增强特性!
Copyright © 2011-2022 走看看