zoukankan      html  css  js  c++  java
  • C#基础:多功能的接口

    C#接口有三种用途:

    1. 提供方法、属性、事件的抽象。这是接口最常见的用途。在面向对象的设计中,接口是软件架构可扩展性的重要保证因素,与抽象类配合使用,使得框架结构具有“被注入”的特性,从而提高系统的扩展性
    2. 用作泛型约束。在这种情况下,接口可以仅仅是一个类型,其中可以不带任何方法、属性或事件的定义。请看:
      view plaincopy to clipboardprint?
      1. public interface IChargeable   
      2. {   
      3. }   
      4.   
      5. public class MyCharge : IChargeable { }   
      6.   
      7. public class ChargeFacility<TChargeable>    
      8.     where TChargeable : IChargeable { }  

      在这个例子中,IChargeable仅仅是为了提供一个泛型约束,确保ChargeFacility中的泛型类型是实现了IChargeable接口的(或者是IChargeable接口本身)。在这种情况下,IChargeable完全可以不需要提供任何方法、属性或事件的定义。

    3. 接口用作开发约束。由于反射的引入,在某些应用场合,程序本身很可能不是通过判断某个类是否实现了某个接口,再去调用给定的函数;程序完全可以使用反射来找到它所需要调用的函数然后使用MethodInfo.Invoke方法去调用这个函数。那么这样一来,开发人员有可能忘记在类中实现这些特定的方法,而导致程序出现问题。于是可以添加一个接口,在其中定义好必须实现的函数声明,然后通过Best Practice的方式要求开发人员在这些类上实现这个接口,那么开发人员也就不得不去填写函数实现体了。
  • 相关阅读:
    BZOJ5311,CF321E 贞鱼
    POJ3208 Apocalypse Someday
    POJ1037 A decorative fence
    POJ1737 Connected Graph
    CF559C Gerald and Giant Chess
    NOI2009 诗人小G
    Problem 2726. -- [SDOI2012]任务安排
    POJ1821 Fence
    HDU5542 The Battle of Chibi
    POJ2376 Cleaning Shifts
  • 原文地址:https://www.cnblogs.com/daxnet/p/1686967.html
Copyright © 2011-2022 走看看