程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 關於接口的思考

關於接口的思考

編輯:關於.NET

1、接口的意義:

以前一直在思考的是接口的意義是什麼,我們定義一個類,如果繼承了接口,就需要實現接口的全部方法和屬性,字段等,那麼為什麼要繼承接口,直接定義我們想要的類就好了,後來隨著接觸的增多,再加上網上搜索的一些資料,漸漸體會到接口的誕生是一個很偉大的發明:

1)、接口可以定義規范,指的是我們在接口中定義一個方法,後面繼承的類都需要實現該方法,且方法必須同名。這樣子就形成了命名規范,增加代碼的可讀性。

2)、接口可以完善定義規則,是一個標准,這個怎麼說呢,就是我們在做項目的時候如果一個類需要實現很多方法,就有可能會忘記,而定義接口並且繼承他就可以避免這一個問題的發生。

3)、接口是多態的一種實現方式,在面向對象編程當中接口助於體現多態的特性,比如使用工廠模式就是使用了接口,還有在依賴注入和控制反轉當中都是使用了接口來降低耦合性。

4)、。。。後面再補充,暫時就想到這麼多。

 

2、來看一個接口的定義,以集合為例(因為這裡面包含了我的一個思考):

我們再上一張圖(List的定義繼承圖):

我們可以發現我們List很牛逼的繼承了它的所有前輩,但是,其實他只要繼承IList<T>和IList就可以實現相同的功能了,為什麼微軟在定義的時候還要把其他的前輩都繼承了呢?

後來仔細領悟漸漸覺得這個可能是為了提高代碼的可讀性。

 

上面這一段代碼是我敲的,我們可以看到,class Third是有實現了接口IFirst的方法的,但是我在寫class Third的時候沒有表明是有繼承IFirst的,這樣子如果別人要使用我的類的時候如果想要使用多態,就需要一級一級的往下看,才能夠知道是可以使用IThird來接收的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved