[toc]
## 什么是設計模式?
> 設計模式(Design Pattern)是一套被反復使用、多數人知曉的、無數工程師實踐的代碼設計經驗的總結,它是面向對象思想的高度提煉和模板化,使用設計模式是為了讓代碼具有更高的可重用性,更好的靈活性和可拓展性,更易被人閱讀和理解。
1. 模式名稱:助記名,方便討論、交流、傳播;
1. 問題:該模式是用來解決哪類實際問題,即它的應用場景;
1. 解決方案:設計的組成部分,它們之間的相互關系及各自的職責和協作方式;
1. 效果:使用模式能達到的效果,即對使用條件的權衡取舍。
## 為什么要學習設計模式?
1. 設計模式不一定會讓你的代碼更`好看`, 但是會讓你的代碼更`好改`
1. 如果代碼不需要修改, 別說設計模式, 連面向對象都變得沒有必要了
## 如何學習?
1. 沒有`重構`, 就沒有`設計模式`
1. 適當的時機, 重新審視并優化自己的代碼
1. 熟悉一門面向對象語言
1. 學會使用UML