標簽(OO思想,即面向對象思想):
OO思想,即面向對象思想
- 封裝:方法——>類
- person與美國人,不應該寫兩個類,應該將國籍作為person的一個屬性
***用面向對象的思想封裝老張開車去東北***
步驟:
a. 抽取名詞成為類,謹記要具體不要籠統,例如不要用person去封裝老張,應該用driver;也不要太具體,例如用laozhag去封裝老張。
b. 確定屬性。不能脫離具體的應用場景,不要寫一些不相關的屬性
c. 確定方法。從類的名字,即driver去確定這個主語有的動作,行為。
面向對象的一條普通原就是屬性一般是private的,所以不能直接通過對象.來使用,而是通過方法去調用,因為這樣可以在方法中做一些判斷,例如權限,這樣更安全,才能把數據封裝起來。
d.類之間的關系(組合,繼承,依賴,聚合,關聯,實現)
e.隱藏(封裝)
降低耦合度(但是耦合度不可能為0,耦合到合適即可 )
f.繼承(降低耦合度)
g.多態——(可擴展性,面向對象的核心中的核心)
注意
- 設計沒有絕對的對與錯
- over design也是一種罪過,不要老是想著用繼承,多態。記住簡單問題簡單解決。
- 現在對于問題想得太多的話,就等于沒想一樣。不用在寫代碼前老是考慮用什么設計模式好,用不用繼承呢,該不該使用多態。因為那些人為規定的設計模式也是從實際的代碼中總結出來的,所以當你代碼寫多了,就自然而然知道該用哪種設計模式了。
接口與抽象類的區別
事物作為抽象類,事物的特性行為作為接口
總結
OO思想慢慢來
封裝繼承和多態
設計層層無止境
適可而止樂開懷