l

2015年5月20日 星期三

什麼是Pattern(5):加入Force

May 19 09:06~09:07

螢幕截圖 2015-05-19 09.45.16 

 

打個廣告先,6月份【Design Patterns入門實作班】早鳥優惠到5/24日,歡迎有興趣的朋友一起來進入Alexander的pattern世界與實作GoF的設計模式。

***

前情提要:

***

螢幕截圖 2015-05-17 23.03.27

不知道鄉民們是否覺得範例4比起之前的版本已經清楚許多?如果僅是根據Pattern定義4來評斷,範例4算是跨越及格標準。但是Teddy要進一步追問,難道pattern的內涵就僅是Context、Problem、Solution而已嗎?

Pattern定義5A pattern is a proven solution to a recurring problem in a specific context, and more(模式是在一個特定情境之下,針對一個重複發生問題的成熟解決方案,和更多。)

鄉民甲:…, and more?這算是什麼爛定義啊。

***

Pattern的格式有很多種,Teddy採用的是以下包含六個元素的格式:

  • Name:模式名稱,增加開發者的設計字彙。
  • Context:描述問題發生的地形地物。
  • Problem:描述問題本身。
  • Force:作用力,用來指出問題的限制或特性。
  • Solution:解決方案。
  • Resulting Context:又稱為consequence,套用解決方案之後的結果。

六個元素之中的Context、Problem與Solution都已經介紹過了,接下來解釋其他三個元素。首先討論Force,它是這六個元素中最抽象也最難解釋的一個,因為它看不到,摸不著,只能「用心體會」,藉由觀察Solution來推敲Force

Alexander在他的書中用不同的講法來解釋pattern。首先看到圖2的說法,這個講法和圖GoF的講法一致(A pattern is a solution to a problem in a context),只提到Context、Problem和Solution。

螢幕截圖 2015-05-19 09.35.57

 

圖3是Alexander書中對於pattern的另一種敘述。在這個敘述中,Problem這個元素不見了,取而代之的是Force。

螢幕截圖 2015-05-19 09.36.33

Force告訴我們為什麼pattern所要解決的「問題」是一個真正的問題。為什麼這個問題很難?為什麼需要一個聰明的,甚至是違反直覺的解決方案?Force也是了解為何會採用此種解決方案的關鍵 [POSA5]Force是pattern很重要的一個元素,簡而言之它讓Problem更明確,也讓Solution 更加完整與成形。

考慮Force這個元素,將範例4改寫為範例5。請問,範例5是一個好的pattern嗎?(範例3-5

螢幕截圖 2015-05-19 09.43.19


***

友藏內心獨白:觀察Force的能力真的很重要。

沒有留言:

張貼留言