iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 15
0
Software Development

我要轉職成 C# / .NET 工程師系列 第 15

因為這個設計模式,終於讓我看懂static要怎麼用

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類別。

責任鍊模式

完成一件事情要經過多個步驟,每個步驟是獨立的類別,該類別完成該步驟會自動幫我們轉送至下一個類別。

狀態模式

完成一件事情要經過多個步驟,每個步驟是獨立的類別,但是類似大地遊戲闖關遊戲,該類別完成該步驟後要我們自己親自送去下一個指定類別。


上一篇
物件導向設計原則中的五個原則縮寫叫SOLID
下一篇
命名空間與別名
系列文
我要轉職成 C# / .NET 工程師34

尚未有邦友留言

立即登入留言