Skilltree Design Pattern上課筆記、心得
最近上了Bill 叔在 Skilltree的Design Pattern課程,也來整理一下上課筆記與心得。
Alexander說:每一個模式都是在描述某種一再出現的問題,並描述解決方案的核心,讓你能據以變化出各種招式,解決上萬個類似的問題。
這堂課上課是用c#,不過App的開發者也很適合來上這個課,以下就來介紹這3天上課的幾個模式及用Kotlin寫了幾個練習。Bill叔在課堂上也提醒大家在學設計模式,要學的是他們的思路與活用。思考的方向不是用什麼pattern,而是思考要解決什麼問題。
設計模式的分類
結構模式
將透過組合類別或是物件來產生更大的結構,用以適應更高層次的邏輯需求。物件結構模式則是注重在組合多個物件來實現新的功能。
Façade
Adapter
Decorator pattern
Proxy pattern
生成模式
生成模式講的就是物件的建構, 將創造與管理物件的職責獨立。 使用的職責是client的職責,生成是這個類別的職責
Singleton
Factory Method
Simple factor
Abstract Factory
待補…
Builder
行為模式
行為模式的重點在於物件之間的演算法與權責分配的問題。這些模式不僅是在描述單一個物件或類別的模式,同時也在描述多個物件或類別間如何執行通訊。
Template Method
Chain of responsibility
State pattern
Strategy pattern
Memento pattern
Command pattern
Mediator
Observer
總結
學了這麼多的模式,接著的功課就是「練習」跟「活用」了。怎麼活用呢?依需求改變想法,不要把招式限制住。處理需求時應預測變化,因為預測有變化,所以我們使用模式來減少變化時修改程式的幅度。但也不要過度預測變化,如果不會有變化,就不需使用模式,過度的使用可能會造成Over design。所以我們其實是為了需求而設計,依需求改變想法,不要把招式限制住,這裡的需求包含自已的需求(早下班)、讓可讀性高、好維護。設計是要花時間的,是有代價的。
這些就是上完Skilltree Bill叔 Design Pattern 3天的上課心得。說是寫心得好像也沒寫到太多東西,大部分是把上課的東西,用Kotlin再練習一下,想一下在 Android的運用。也許這是因為自已還不太會活用設計模式,也希望不斷的練習達到能夠活用設計模式。到時候再來補上更多心得囉。