【設計模式】面向對象的四個特點

 

一、封裝特性

         通過把數據在類中設爲私有,來進行數據隱藏和數據訪問保護。在類中暴露出有限的訪問接口,供外部調用,可以達到兩個目的:一是可以保護數據免於被刪改,二是通過有限的函數接口可以提高類的易用性,再具體點來講就是,使用者不用再完全瞭解類所有內容的情況下,僅通過使用必要接口來訪問數據。

 

二、抽象性

封裝的意義主要在於數據保護,對使用者隱藏不必要的信息,使用者只需關心類中提供了哪些功能,不需要關心具體是怎麼實現的。而抽象通過抽象類和接口類實現(python中通過@abstract實現抽象函數和抽象類)。面向對象的抽象特性,可以提高代碼的可擴展性、維護性、修改具體的實現不用改變定義,減少改動範圍。就如python中@abstract標記的函數而言,可能會存在多個類重寫該抽象函數,如果某一具體類改變了實現方式,並不會影響到其他類中的實現。另一方面,在處理具體問題設計時,可以先抽象出具體要實現功能(抽象函數),過濾到不必要的信息。

 

三、繼承性

       繼承表示的是一種is-a關係,也就是“水果”和“香蕉”的關係。繼承也會存在單繼承與多繼承(菱形繼承問題),面向對象編程中,通過類的繼承可以提高代碼的複用性,如最近工作中的ListView問題

 

四、多態性

      多態是指在繼承過程中,子類中的函數可以替換父類中的函數,python 中通過super函數,在子類中同時調用父類和當前子類中的函數,多態可以提高代碼的複用性 。

https://www.jianshu.com/p/e188daac678c

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