面向介面程式設計詳解!

2022-02-01 05:46:30 字數 789 閱讀 1083

今天同學問我我乙個問題,他問我面向介面程式設計有什麼好處?

好吧!首先要說介面的含義:

1、它是乙個規則的集合,它規定了實現該介面的類或者介面要遵守這些規則。

換句話說,在現實世界中他體現了(如果你是.....你必然會......)這樣的理念,比如說我定義了乙個person介面,在該介面中有乙個抽象方法eat,那麼就可以解釋為:如果你是乙個人你必然會吃。

2、介面是對同類事物的共同特點的抽取

例如,在我眼中,我是乙個人,我和一頭豬有著本質的區別。但是在乙個動物學家的眼裡,我和一頭豬沒有什麼區別,我們都屬於動物,也就是說動物學家在研究人和豬的行為時。他們不會對我們進行區別對待,我們都屬於ianimal介面。

現在換了乙個遺傳學家,情況又不同了,因為生物都能遺傳,所以在他眼裡,我不僅和豬沒區別,和乙隻蚊子、乙個細菌、一顆樹、乙個蘑菇乃至乙個sars病毒都沒什麼區別,因為他會認為我們都實現了idescendable這個介面(注:descend vi. 遺傳)。

好了那麼現在面向介面程式設計有什麼好處呢?

首先我們要明白專案中的層次關係和依賴關係,每層不是直接向上層提供服務,而是通過每層定義的介面,向上暴漏其介面的功能,上層對下層僅僅是介面的依賴,而不是具體依賴某乙個類。

1、系統的靈活性得到提公升,便於維護和拓展。

當下層需要改變時,只要介面及介面的功能不變,上層不用做修改。

有時候甚至我們可以完全修改下層實現。就比如我不想用u盤了。我想用行動硬碟,那你只用把u盤拔了,插上行動硬碟就行了。

2、松耦合

參考:

面向介面程式設計詳解(三)

感謝原作者,講的非常好,非常明白,這是乙個系列,一共三篇部落格。通過前面兩篇,我想各位朋友對 面向介面程式設計 的思想有了一定認識,並通過第二篇的例子,獲得了一定的直觀印象。但是,第二篇中的例子旨在展示面向介面程式設計的實現方法,比較簡單,不能體現出面向介面程式設計的優勢和這種思想的 內涵。那麼,這...

面向介面程式設計詳解(三)

標籤 程式設計 mvc設計模式 net儲存 2009 08 14 17 03 9262人閱讀收藏 舉報 通過前面兩篇,我想各位朋友對 面向介面程式設計 的思想有了一定認識,並通過第二篇的例子,獲得了一定的直觀印象。但是,第二篇中的例子旨在展示面向介面程式設計的實現方法,比較簡單,不能體現出面向介面程...

面向介面程式設計詳解(三) 模式研究

通過前面兩篇,我想各位朋友對 面向介面程式設計 的思想有了一定認識,並通過第二篇的例子,獲得了一定的直觀印象。但是,第二篇中的例子旨在展示面向介面程式設計的實現方法,比較簡單,不能體現出面向介面程式設計的優勢和這種思想的內涵。那麼,這一篇作為本系列的終結篇,將通過分析幾個比較有深度的模式或架構,解析...