三大基本特征
封裝
封裝就是隱藏對象的屬性和實現細節,僅對外公開接口,控制在程序中屬性的讀和修改的訪問級別,將抽象得到的數據和行為(或功能)相結合,形成一個有機的整體,也就是將數據與操作數據的源代碼進行有機的結合,形成“類”,其中數據和函數都是類的成員。封裝的目的是增強安全性和簡化編程,使用者不必了解具體的實現細節,而只是要通過外部接口,以特定的訪問權限來使用類的成員
繼承
繼承是面向對象的基本特征之一,繼承機制允許創建分等級層次的類。繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為,繼承機制可以很好的描述一個類的生態,也提高了代碼復用率
多態
多態同一個行為具有多個不同表現形式或形態的能力。是指一個類實例(對象)的相同方法在不同情形有不同表現形式。多態機制使具有不同內部結構的對象可以共享相同的外部接口。這意味着,雖然針對不同對象的具體操作不同,但通過一個公共的類,它們(那些操作)可以通過相同的方式予以調用。
多態的優點:
- 1. 消除類型之間的耦合關系
- 2. 可替換性
- 3. 可擴充性
- 4. 接口性
- 5. 靈活性
- 6. 簡化性
多態存在的三個必要條件:
- 繼承
- 重寫(子類繼承父類后對父類方法進行重新定義)
- 父類引用指向子類對象
六大基本原則
單一職責原則
不要存在多於一個導致類變更的原因,即一個類只承擔一個職責。
開放-封閉原則
對擴展開放,對修改封閉。無論模塊多么封閉,都會存在一些無法對之封閉的變化,既然不能完全封閉,我們必須對於自己設計的模塊應該對哪種變化封閉做出選擇,必須先猜測出最有可能發生的變化種類,然后構造抽象來隔離這些變化。這樣我們才能開發出可維護、可擴展、可復用、靈活性好的程序。
迪米特原則
一個對象應該對其他對象有最少的了解,減少類與類之間的耦合。如果兩個類不必彼此通信,那么這兩個類就不應當發生直接的相互作用。類與類之間的耦合越弱,越有利於復用,一個處於弱耦合的類被修改,不會對有關系的類造成波及。
依賴倒轉原則
上層模塊不要依賴底層模塊,它們都要依賴於抽象。抽象不能依賴於細節,細節要依賴於抽象。面向接口編程,不要面向實現編程。
里氏替換原則
子類型必須能夠替換掉它們的父類型。只有當子類可以替換掉父類,軟件單位的功能不受影響時,父類才能真正的被復用,而子類也能夠在父類的基礎上增加新的行為。
接口隔離原則
客戶端不應該依賴於它不需要的接口,一個類對一個類的依賴應該建立在最小的接口上。不要讓與自己無關的修改影響到自己功能模塊的變化。
