接口作為返回類型


返回類型是接口的討論

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM