天天看點

設計模式入門筆記(1.1)

什麼是設計模式?

【From 百度百科】

設計模式入門筆記(1.1)

設計模式是一種用于代碼設計的經驗總結。

設計模式的目的?為什麼使用設計模式?

HelloWorld是不需要使用設計模式的,設計模式的主要應用場景是在大型應用的建構上,假想一下,在2萬行代碼中增加功能,如果程式可讀性差,代碼将難以擴充和優化。

是以,設計模式主要聚焦:

  • 建構工程化結構
  • 代碼的複用性
  • 代碼的易讀性
  • 代碼的可擴充性

注:

  • 不同設計模式适用于不同的場景。
  • 設計模式考慮的角度是整個軟體體系的結構是否合理,是否穩定,而并非聚焦于單個的功能實作,是以在實際開發過程中,簡單的問題或許會因為出于對于全局的優化考慮而複雜化。
  • 設計模式并不是完美的,經驗可以解決現有問題,但同時也會帶來新的問題,場景分類,權衡取舍,才是設計模式的正确打開方式。

學習設計模式之前需要了解的知識

面對對象三大特點:

  • 封裝:隐藏複雜,暴露簡單(隔離變化,保護資料,提高代碼重用性)
  • 繼承:複用現有代碼(多态的前提)
  • 多态:改寫對象行為(提高代碼擴充性)

抽象與執行個體:

【舉個栗子】

以吃早餐為例,每天早晨都會吃早餐,但是今天可能喝豆漿吃油條,明天呢吃包子喝粥。

每天早晨都會吃東西(正常情況下),但是每天都不一樣。

那麼每天早飯的内容就是執行個體,而每天都要吃早飯的行為或者說習慣稱之為抽象。

Conclusion:抽象就是指不變的事物(每天都吃早餐),而執行個體是指會變化的事物(每天吃的都不一樣)。

複用與活字印刷:

設計模式入門筆記(1.1)

活字印刷與複用的思想不謀而合。舉個栗子簡單描述一下,比如說要印刷一份出師表,按照以往的科技,先在石闆上調刻一份出師表然後刷墨,然後用紙印。但是這塊石闆就隻能印出師表了,活字印刷的思想就是把字拆解開來,需要的時候再進行組合。比如說,出師表有738個字,那就先刻500個獨立的字(假設有重複)然後排列組合印刷。等下一次,要印離騷了,先把500字中能用的先拿出來,然後刻剩下的字。久而久之,每次印刷隻需要排列字的順序就行了。

在活字印刷中,複用的就是一個個單獨的字。