<aside>
💡 抽象
封裝
繼承
多型
</aside>
#抽象
- 抽象不是簡化,而是外界對該事物的理解
- 抽象省略了細節,讓人們專注在需求的描述上
- 過度抽象會導致錯誤的一致性
#封裝
將不需要關心的物件內部運作方式隱藏起來,只露出操作介面
- 好的封裝:開放的越少越好,又缺一不可
- 隱藏一切用戶所不需要知道的內部運作方式,或跟其他物件的互動行為
- 封裝讓物件負責維護自己的內部狀態
- 封裝的缺點:三個和尚沒水喝
#繼承
對於抽象的對象做特例化,以區別出不同的行為
- 繼承是對抽象的特例化
- 繼承區分出抽象類別與具象類別
- 讓抽象類別來定義外界如何理解行為,讓具象類別來定義如何實作行為
- 抽象:車子想到輪胎方向盤,行為上聯想
- 具象:講到賽車想到F1車
- 繼承不是重用程式碼
#多型