對象:對象是負有一定責任的實體,對象中有變量可以標識自己的狀態,對象中有方法可以改變自己的行爲。對象必須對自己的行爲負責。
封裝:封裝不僅是對數據的隱藏,封裝可以隱藏任何東西。抽象可以隱藏子類,接口可以隱藏具體的實現。
多態:用統一的方式訪問類的不同派生類,但得到的行爲取決於所訪問的對象所屬的派生類。
用面向對象的思想分析問題:
在處理一個具體問題時,要先從概念視角看待問題,找出對象,確定該對象應負有那些責任,既該對象應具有哪些行爲,提供哪些接口。最後在從實現視角考慮如何具體實現功能。
設計策略:
1.發現並封裝變化點:對於對象的可變行爲,要通過抽象來封裝變化,抽象提供了一個統一的訪問方式,具體的實現有子類處理。
2.優先使用對象組合而不是類繼承:繼承增加了耦合性