這邊透過UML的Class Diagram介紹Strategy Pattern的概念,
以及目的和相關實作的方式。
如同之前文章所說,UML Diagram其實最主要也最廣泛被拿來溝通,
因為是模型語言,所以不會被實做的程式語言所侷限。
在描述比較抽象的概念時,UML因為是一種廣泛被使用的國際標準,
所以比較能被各個層級的相關人員(包括完全不懂電腦的User)所瞭解。
這邊要解釋的Design Pattern是Stragety Pattern,
我們先來看Class Diagram:
整個Stragety Pattern的重點,就在<<interface>>IStrategy這個class。
IStrategy裡面定義了相關的algorithm operation。
而Client的Class指的是系統內任何要使用algorithm的程式(或者稱物件更合適)。
所有要使用Strategy A或Strategy B的algorithm method,都需要透過<<interface>>IStrategy。
在系統架構裡面,只要決定以哪一個class去實作interface即可。
透過Dependency Injection相關的framework,就能實作系統演算法的切換。
實做的部分因為文章長度的限制,
請各位可以去參考小弟blog上的文章:
http://www.dotblogs.com.tw/hatelove/archive/2009/10/02/10894.aspx
圖好像沒出來?
謝謝您的提醒,我剛剛請其他人看了一下才知道真的看不到圖
原本的網址我是看的到圖的....