.NET簡談面向接口編程
過程式的開發方式已逐漸退出大眾的眼線,隨之而來的是各種各樣的高抽象的開發模式;我們不得不承認在沒有設計模式的時候,我們很難總結出有價值的開發模型,便于以后重復使用和推廣;面向對象的流行,讓我們開發人員重新站在一個高的起點來看待軟件模型,抽象固然是好事,但是也給初學者帶來了迷惑,將軟件中的東西都想成很簡單的封裝,我們只需要調用就行,這樣越來越多的開發人員開始慢慢的往上浮,有一定編程經驗和感觸的人,能夠明白我所說的浮,也算是給初學者提個醒吧。
1:
2:
我們將計算機系統抽象層三個層次,我們做應用層開發的基本上處于最上層;我為什么要給出這張圖,其實當我們的軟件系統不斷的抽象后我們會距離系統層越來越遠:
系統層將逐漸完善,而我們也將逐漸慢慢被淘汰;其中的道理,大家都能懂的;所以我們不能總是停留在應用層,我們要向系統層進軍,進行架構設計、系統設計等等屬于系統層的工作范圍,我們得進入系統層才不會有危機感;下面我們進入文章的主題:簡談面向接口編程。
看這篇文章的朋友如果有關于.NET接口方面的疑惑,可以參考本人的另外一篇文章.NET簡談接口;其實面向接口編程是個很大的話題,我很怕寫不好引起大家共憤浪費大家時間,本人前前后后考慮很久還是打算以簡單的方式來呈現面向接口編程的思想精髓。
我們還是拿現實生活中的例子來做比喻吧(面向對象的一切規則來自大自然),我是一名建筑工程師,我要開發一棟別墅,作為建筑工程師首先要進行整體項目的構思,結果就是一份很完美的建筑圖紙,請注意建筑圖紙就是我們這里的一個大的接口,面向接口編程的思想就是不涉及具體的實現,只給出實現必須要做到的硬性條件,作為建筑工程師,他很清楚每一建筑細節,需要層層把關,我們開始深化;一份大的圖紙出來之后,交由包工隊進行具體的實現也就是開始蓋了,這里就是具體的實現了,實現必須完全按照圖紙來進行,所以在圖紙與實施之間就是接口與實例之間的關系。
我們先打地基,圖紙明確規定地基要用什么結構的支撐,所以我們的具體實施要完全繼承自這個接口,具體怎么支撐是工程隊的事情;我們繼續看,下面要實現的是房屋的基本結構,房屋的造型,房屋的面積,房屋的質量標準等等條件都已經在工程圖紙中給出,我們只要繼承自房屋實現接口去實現就行了;我們快速進行開發,現在到了具體門窗的裝配,門窗接口已經規定我的門要有哪些些裝飾,有哪些防盜措施;這些硬性條件是接口中規定的;具體你用哪個門,是哪個廠家的門,門是什么顏色的只要我沒有規定的都可以;請看代碼圖:
3:
上圖是將項目中的接口比喻成圖紙所規定的實現條件,而接口就是圖紙的抽象表示;請繼續看代碼圖:
4:
5:
6:
7:
圖7就是總體圖紙,我們來開怎么實現開發;
8:
9:
總結:面向接口編程大概就講玩了,歸根到底一句話:面向接口編程就是將類與類之間的關系提升到一個更高的抽象層次;面向接口編程是一種境界,我這里只是一個入門介紹,希望對你有幫助。