1. 面向對象的三大特性
- 封裝性
(1).良好的封裝能夠減少耦合
(2).類內部的結構可以自由修改 , 而不會影響其他類的調用
(3).可以對內部成員進行更精確的控制
(4).隱藏成員信息 , 不想讓其他類看到的實現細節
- 繼承性
實現了代碼複用
- 多態性
(1). 不同類的對象對同一個方法執行了不同的代碼
(2). 執行期間判斷引用對象的實際類型 , 然後根據類型調用其方法 , 這被稱爲動態綁定
(3).可以消除類型之間的耦合關係
2. 面向對象設計的五大基本原則:
- 單一職責原則SRP(Single Responsibility Principle)
(1) 一個類只能承擔一個職責
(2) 爲了實現高內聚低耦合
(3) 例如公司部門 , 每個部門都有自己單一的職責
- 開放封閉原則OCP(Open-Close Principle)
(1). 對於擴展是開放的
(2). 對於更改是封閉的
(3). 例如電腦 , 像CPU只有運算功能 , 如果要新增硬盤存儲功能 , 只能擴展 , 而不能修改CPU
-裏式替換原則(the Liskov Substitution Principle LSP)
(1). 一個對象使用的是父類的話 , 那麼也一定適用於其子類對象
(2)子類應該可以在任何地方替換父類
- 依賴原則(the Dependency Inversion Principle DIP)
(1). 高層次的模塊不應該依賴於低層次的模塊
(2). 例如B類依賴於A類 , B可以定義一個抽象接口 , 並由A來實現這個接口 , B就只是用這個抽象接口
(3). 這樣就是實現了依賴倒置, 不是B依賴A , 而是A依賴B的抽象接口
- 接口分離原則(the Interface Segregation Principle ISP)
(1). 當一個接口過於龐大的時候 , 儘量細化接口 , 可以爲各個類建立專用的接口
(2). 程序設計中 , 依賴幾個專用的接口比依賴一個綜合接口更加靈活