設計模式考慮的角度是整個軟體體系的結構是否合理,是否穩定,而並非聚焦於單個的功能實現 ...
什麼是設計模式?
【From 百度百科】
設計模式是一種用於代碼設計的經驗總結。
設計模式的目的?為什麼使用設計模式?
HelloWorld是不需要使用設計模式的,設計模式的主要應用場景是在大型應用的構建上,假想一下,在2萬行代碼中增加功能,如果程式可讀性差,代碼將難以擴展和優化。
所以,設計模式主要聚焦:
- 構建工程化結構
- 代碼的復用性
- 代碼的易讀性
- 代碼的可擴展性
註:
- 不同設計模式適用於不同的場景。
- 設計模式考慮的角度是整個軟體體系的結構是否合理,是否穩定,而並非聚焦於單個的功能實現,所以在實際開發過程中,簡單的問題或許會因為出於對於全局的優化考慮而複雜化。
- 設計模式並不是完美的,經驗可以解決現有問題,但同時也會帶來新的問題,場景分類,權衡取捨,才是設計模式的正確打開方式。
學習設計模式之前需要瞭解的知識
面對對象三大特點:
- 封裝:隱藏複雜,暴露簡單(隔離變化,保護數據,提高代碼重用性)
- 繼承:復用現有代碼(多態的前提)
- 多態:改寫對象行為(提高代碼擴展性)
抽象與實例:
【舉個慄子】
以吃早餐為例,每天早晨都會吃早餐,但是今天可能喝豆漿吃油條,明天呢吃包子喝粥。
每天早晨都會吃東西(正常情況下),但是每天都不一樣。
那麼每天早飯的內容就是實例,而每天都要吃早飯的行為或者說習慣稱之為抽象。
Conclusion:抽象就是指不變的事物(每天都吃早餐),而實例是指會變化的事物(每天吃的都不一樣)。
復用與活字印刷:
活字印刷與復用的思想不謀而合。舉個慄子簡單描述一下,比如說要印刷一份出師表,按照以往的科技,先在石板上調刻一份出師表然後刷墨,然後用紙印。但是這塊石板就只能印出師表了,活字印刷的思想就是把字拆解開來,需要的時候再進行組合。比如說,出師表有738個字,那就先刻500個獨立的字(假設有重覆)然後排列組合印刷。等下一次,要印離騷了,先把500字中能用的先拿出來,然後刻剩下的字。久而久之,每次印刷只需要排列字的順序就行了。
在活字印刷中,復用的就是一個個單獨的字。