# 馬士兵設計模式筆記

標簽(OO思想,即面向對象思想):


OO思想,即面向對象思想

  1. 封裝:方法——>類
  2. person與美國人,不應該寫兩個類,應該將國籍作為person的一個屬性

***用面向對象的思想封裝老張開車去東北***
步驟:

a. 抽取名詞成為類,謹記要具體不要籠統,例如不要用person去封裝老張,應該用driver;也不要太具體,例如用laozhag去封裝老張。
b. 確定屬性。不能脫離具體的應用場景,不要寫一些不相關的屬性
c. 確定方法。從類的名字,即driver去確定這個主語有的動作,行為。

面向對象的一條普通原就是屬性一般是private的,所以不能直接通過對象.來使用,而是通過方法去調用,因為這樣可以在方法中做一些判斷,例如權限,這樣更安全,才能把數據封裝起來。

d.類之間的關系(組合,繼承,依賴,聚合,關聯,實現)
e.隱藏(封裝)
  降低耦合度(但是耦合度不可能為0,耦合到合適即可 )
  
f.繼承(降低耦合度)
g.多態——(可擴展性,面向對象的核心中的核心)


注意

  1. 設計沒有絕對的對與錯
  2. over design也是一種罪過,不要老是想著用繼承,多態。記住簡單問題簡單解決。
  3. 現在對于問題想得太多的話,就等于沒想一樣。不用在寫代碼前老是考慮用什么設計模式好,用不用繼承呢,該不該使用多態。因為那些人為規定的設計模式也是從實際的代碼中總結出來的,所以當你代碼寫多了,就自然而然知道該用哪種設計模式了。

接口與抽象類的區別

事物作為抽象類,事物的特性行為作為接口


總結

OO思想慢慢來
封裝繼承和多態
設計層層無止境
適可而止樂開懷

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容