zoukankan      html  css  js  c++  java
  • 接口作为返回类型(转载)

    返回的类型是接口,但是接口是不能实例化的,但是接口可以声明一个引用,指向其实现类,也就是说,在实际中返回值都是这个接口的实现类的对象。这点就是面向对象的一大特点

    我要 接口“I食物链顶端滴男人”,你返回了“贝爷”,这是什么鬼?你能理解么?

    可以说这个过程什么都没发生
    只不过在方法内部,你可能是任何对象
    但是在方法的外部,你获得的对象只能使用那个接口提供的方法,仅此而已

    返回类型是接口的讨论

    http://bbs.csdn.net/topics/380209722

    public static IList<int> a()
    {
       b=new List<int>();
       return b;
    }

    这里不是返回一个List, 而是IList接口是什么意思呢?

    =========================================================================

     如果你编写一个函数,确定只返回某个类型。那么在选择 返回值 类型的时候,越精确越好。
    比如 string string.Replace(string, string),就比object string.Replace(string, string)好。

    如果明知你返回的是一个类型,那调用时还要用接口来声明变量,没有意义。但是在这样一种情况下例外(我不想说的不严谨被有些人说,但是的确这种例外的情况你很难遇到):就是这个类显式实现了某个接口,同时你又要使用这个接口的方法,某个场景是,这个类实现了两个不同的接口,这两个接口有方法签名相同但是含义不同的两个方法,因此类显式实现接口。这时候你得指定所用的接口类型而不是返回值类型。

     =================================================================================

    返回接口一般运用于抽象层。

    IList<T>可以理解为女人。
    List<T>可以理解你女朋友。
    你女朋友可以具有女人这个属性,但是并不是每个具有女人属性的人都是你女朋友。
    而厕所就有个明确的定义 符合女人这个定义就可以进女厕所。不符合的就不能进。(当然存在BUG,比如清洁工可能是男的。)
    你觉得精确到每一个具体的女人有意义么?

    =========================================================================

    public static IList<int> a()
    {
       b=new List<int>();
       return b;
    }

    这里返回值类型为:一个IList<T>的泛型接口,这样的目的是让返回的b使用得更广泛,凡是继承了IList<T>接口的类都可以使用b而不会有类型冲突

    =================================================================

    方法该返回接口还是具体类,以及面向接口编程

    http://www.cnblogs.com/kirinboy/archive/2012/03/08/should-method-return-interface-or-concrete-class-and-programming-to-an-interface.html

  • 相关阅读:
    using可以用于释放操作,相当于Dispose()
    Entity Framework 5.0 Code First全面学习
    .NET Entity Framework入门操作
    李克强:让科技人员合理合法富起来
    THC=TERMINAL HANDLING CHARGE,碼頭操作費
    到处寻找移动互联网的风口:站在台风口,猪都能飞上天,为什么互联网能在家装行业产生这么巨大的冲击力?
    群雄逐鹿 互联网家装市场烽烟四起
    要给出互联网解决社会性问题的步骤与方法
    Spring Cloud 2-Hystrix DashBoard仪表盘(五)
    Spring Cloud 2-Hystrix 断路容错保护(四)
  • 原文地址:https://www.cnblogs.com/yunxiblog/p/5186360.html
Copyright © 2011-2022 走看看