• 何时使用Delegate,何时使用Interface


    委托和接口的相似点

    委托和接口都允许类的设计者将声明和实现分离开来,一个给定的接口可以被任何类或结构体继承和实现;也可以为任何类的方法创建对应的委托,只要该方法满足委托的签名,委托和接口可以被一个对象使用,这个对象不必关心实现委托和接口的细节,有了这些相似点,我么什么时候使用委托?什么时候使用接口呢?

    使用委托的情况

    • 使用了基于事件的设计模式
    • 封装静态方法
    • 调用者无需访问实现方法的对象的其他内容,比如属性,方法或接口
    • 简单的组合
    • 一个类想要方法的多种实现

    使用接口的情况

    • 一组相关的方法需要被调用
    • 只需要方法的一种实现
    • 需要将接口转换为其他接口或类
    • 被实现的方法链接到类中的某个类型,比如comparison方法

    有一个使用只包含单个方法的接口而不是委托的好例子,那就是IComparable或声明了CompareTo方法的IComparable.IComparable,该方法返回一个整型值来表示两个同类型对象间的关系,大于,等于或者是小于。IComparable可以用作排序算法的基本比较函数,当然使用委托也可以,但是并不理想,因为比较的实现取决于类,并且比较算法运行时并不改变,一个单方法的接口就很理想。

    original http://msdn.microsoft.com/en-us/library/ms173173%28v=vs.80%29.aspx

  • 相关阅读:
    散列表
    5月19日
    5月17日阅读笔记3
    5月15日 阅读笔记2
    5月14日 阅读笔记1
    团队5
    团队博客2
    团队博客4
    团队博客3
    团队博客1
  • 原文地址:https://www.cnblogs.com/graphics/p/1959451.html
Copyright © 2020-2023  润新知