May 13 10:00~11:15
打個廣告,【Design Patterns入門實作班】招生中,歡迎有興趣的朋友一起來進入Alexander的pattern世界與實作GoF的設計模式。
***
在〈搞笑談軟工〉寫了這麼多篇有關pattern的文章,昨天才發現居然沒有談過pattern的定義。Pattern的定義說簡單也簡單,說複雜也是有很多東西可以扯。這一系列文章就來扯一下這個主題。
Pattern這個英文字,中文大多翻譯為模式或樣式,也有少數翻譯為範式。就字面的意義,可以解釋為「一再重複出現的東西、事件、或現象」。例如,LV包包上面的幾何圖形(重複出現的東西、圖樣);每四年舉辦一次市長選舉(重複出現的事件);吃了地瓜很容易放屁(重複出現的現象)。
在軟體開發領域,pattern有特殊的意義。最廣為人知的定義來自於GoF書中的這句話:
A pattern is a solution to a problem in a context.
GoF在書中提到,pattern的概念源自於建築師Christopher Alexander。在Alexander的書中提到:
Each pattern is a three-part rule, which express a relation between a certain context, a problem, and a solution.
GoF的定義和Alexander這句話的意義相符,這是pattern的第一個定義。
Pattern定義1:A pattern is a solution to a problem in a context(模式是在一個情境之下,針對一個問題的解法。)
***
依據這個定義,請鄉民們看第一個例子。
範例1具備了Pattern定義1的所有元素:context、problem、solution。請問,範例1是一個好的pattern嗎?請鄉民們先想想這個問題,下集待續。
***
友藏內心獨白:通常都有陷阱。
沒有留言:
張貼留言