再談談接口和抽象類

 到現在接口和抽象類還是有很多人對這兩種情況不能很好的應用

前些天在網上看到有位仁兄說了:接口是給外人用的,而抽象類是給自家子孫用的,哈哈,這句話我個人認爲很是經典呀。

 

其實怎麼說了?讓我們去分解一下上面那句話。

 

“"接口是給外人用的”

接口和抽象類在大致的功能上沒什麼區別。但是在設計上和就從它表面的字面語義上去理解,接口就是對外的嘛,就是對外部客戶代碼提供的一組規則,它忌諱修改,但可以去擴展它。說個很簡單的例子,我們電腦主板上的IDE硬盤接口,它是T型的它有39個不同顏色的針,它可以接不同品牌的硬盤呀,有希捷,有IBM,有三星等。

接口外稱:IDE硬盤接口

規則:T型的它有39個不同顏色的針

客戶端:希捷硬盤,IBM硬盤,三星硬盤。。。。。。還會有更多

 

“抽象類是給自家子孫用的”

很對很對,在你做一個功能模塊時,你會考濾到模塊以後的維護或是更具體功能的擴展,你會對其內部做一些抽象去隔離它的變化。爭對具體的東西做一些抽象類,抽象類裏面根據具體情況還可以加一些具體的實現方法。中心思想就是讓這個模塊可維護性提高。比如希捷硬盤,IBM硬盤,三星硬盤等,它們的存儲介質又有不同,有玻璃磁盤,有鋼片磁盤等等,但是不管什麼介質,讓它們轉動的軸是一樣的呀。這個軸就是一個抽象體呀。根據產商不同可以在軸上增加具體的功能,IBM加了一些防震芯片,三星的加了數據備份芯片等等。可以把這些芯片看作抽象類裏的具體方法。

 

總的來說,在設計層理解接口和抽象類是兩個完全不同的東西。

 

個人解理也不怕各位開發朋友扔磚頭,歡迎你們扔磚頭吧〔技術這東西就是要交流〕

 

發佈了36 篇原創文章 · 獲贊 0 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章