2016年3月19日 星期六

策略模式

策略模式

策略本是用來解決問題的。在建築、軟體設計的領域裡,常常面臨許多重複出現的問題,這些問題往往有一些經過反覆思考、研究後,相對較佳與固定的處理方式,這樣的方式就被叫做「模式(pattern)」。軟體設計領域裡的「設計模式(design pattern)」是在1990年代由軟體設計師從建築設計領域裡引進計算機科學領域來從事問題解決的方法。「設計模式」不同於「演算法(algorithm)」,儘管後者也是一種固定的解決問題的方法,但「設計模式」著重於軟體設計層次上的問題,而「演算法」則著重於計算層次上的問題。同樣的,在軍事的領域裡,也面臨了很多重複性的問題,用來解決這些重複性問題的,本身也可被稱為一種「模式」。在戰爭層次上所面對的問題,歷來就有眾多「兵法」做為其解決問題的指導方法;本單元所要探討的模式,雖然也多數出現於兵書中,但主要不是用來解決戰略、戰術層次上的問題,而通常是用來解決在戰爭活動中所會遭遇到的非戰略、戰術性而具有類似與重複性的問題,這些問題主要體現在武器的設計與使用層次上,因此別出一項,專門討論。於是我用「策略模式(tactic pattern)」來稱呼它。
  不管是戰略、戰術層次上的問題,還是武器設計與使用層次上的問題,這些策略自然毫無意外都屬於「策略分類學」中的一部分特定類別。這些模式,有些是因為最早被想出來,有些是因為這個方法確實最有效率,有些可能只是一種習慣,因此被用來解決相同的問題而成其為一種「模式」。軟體領域裡的設計模式,其用處在於:「設計模式主要是使不穩定的依賴於相對穩定、具體依賴於相對抽象,避免會引起麻煩的緊耦合,以增強軟體設計面對並適應變化的能力。」(維基百科)因此,「策略模式」所要探討的,除了描述歷來就存在的許多策略模式之外,也希望能對這些模式本身是否是處理該類型問題最有效的處理方式,或者這樣的處理方式在哪些時候是最有效的,而在哪些時候卻不如其他模式來的有效等問題進行討論。從而也希望這樣的討論,能對諸如武器設計與使用等範疇的問題,提出一個可供依循與查找、參考的相對固定與迅速、系統性的解決方案。
朔雪寒 2010.5.15


沒有留言:

張貼留言