C#的書上(蠻多)對static描寫得很艱澀難懂,我翻了幾本也是對static一知半解,真是佩服會說出只讀一本書就能自學學好C#的人Orz
設計模式這個詞主要是從建築學引用過來的,大意是指遇到什麼情況應該選用什麼建築工法比較好的意思,1980年代開始就有很多程式設計方面的研究,在1994年由四位作者合著收集23個模式成為一本書《設計模式:可復用物件導向軟體的基礎》,四個人英文稱為Gang of Four,簡稱GoF,有時候這本書被稱為GoF設計模式。
讓我對設計模式感到一點興趣的契機是看到,.NET設計模式一書中對單例模式與C#關係的描寫
單例模式大概的構想是:一個系統中會有很多物件存在,但是A物件就只有一個,透過這個唯一的A物件,達到控制管理其他物件的目標,而C#中提供(static修飾詞)讓我們輕鬆設計出單例模式。
有一種蒙受天啟的感覺,設為static的物件在程式一剛開始執行就會存在,不用new該物件就可以直接使用,也不能另外new出來,static的物件是系統中該物件唯一一個存在,並在程式結束後才消失。就像校門口的警衛,不管有沒有學生,警衛一定是開門前第一個到學校的人,也是關門後最後一個離開學校的人,可以守在門口幫我們計算今天幾個學生到校,又有幾個學生離開。
以下簡單舉幾個設計模式
設計一個類別作為其他類別的生產工廠,傳入類別名稱進去,會幫我new一個物件回傳回來。
要將A類別轉換成B類別,設計一個類別幫我們把A類別轉換成B類別。
完成一件事情要經過多個步驟,每個步驟是獨立的類別,該類別完成該步驟會自動幫我們轉送至下一個類別。
完成一件事情要經過多個步驟,每個步驟是獨立的類別,但是類似大地遊戲闖關遊戲,該類別完成該步驟後要我們自己親自送去下一個指定類別。