zoukankan      html  css  js  c++  java
  • [转]何时使用委托而不使用接口(C# 编程指南)

    以下内容转自MSDN:http://msdn.microsoft.com/zh-cn/library/ms173173.aspx

    委托和接口都允许类设计器分离类型声明和实现。 任何类或结构都能继承和实现给定的接口。 可以为任何类上的方法创建委托,前提是该方法符合委托的方法签名。 接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。 既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢?
    在以下情况下,请使用委托:
      当使用事件设计模式时。
      当封装静态方法可取时。
      当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。
      需要方便的组合。
      当类可能需要该方法的多个实现时。
    在以下情况下,请使用接口:
      当存在一组可能被调用的相关方法时。
      当类只需要方法的单个实现时。
      当使用接口的类想要将该接口强制转换为其他接口或类类型时。
      当正在实现的方法链接到类的类型或标识时:例如比较方法。
    IComparable 或泛型版本 IComparable<T> 就是一个使用单一方法接口而不使用委托的很好的示例。 IComparable 声明 CompareTo 方法,该方法返回一个整数,指定相同类型的两个对象之间的小于、等于或大于关系。 IComparable 可用作排序算法的基础。 虽然将委托比较方法用作排序算法的基础是有效的,但是并不理想。 因为进行比较的能力属于类,而比较算法不会在运行时改变,所以单一方法接口是理想的。
  • 相关阅读:
    关于SQL Server将一列的多行内容拼接成一行的问题讨论
    Win7 disk.sys无法加载的问题
    mvel2.0语法指南
    让网页不被缓存的解决办法
    让html页面不缓存js的实现方法
    mysql中间件研究(tddl atlas cobar sharding-jdbc)
    jdk环境变量设置理解
    the import cannot be resolved
    Oracle解除表锁定问题
    windows系统中软件开发常用的软件
  • 原文地址:https://www.cnblogs.com/GYoungBean/p/3848132.html
Copyright © 2011-2022 走看看