l

2015年5月13日 星期三

什麼是Pattern(1):第一個例子

May 13 10:00~11:15

image

打個廣告,【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(模式是在一個情境之下,針對一個問題的解法。)

***

依據這個定義,請鄉民們看第一個例子。

螢幕截圖 2015-05-13 11.10.40

範例1具備了Pattern定義1的所有元素:context、problem、solution。請問,範例1是一個好的pattern嗎?請鄉民們先想想這個問題,下集待續。

***

友藏內心獨白:通常都有陷阱。

沒有留言:

張貼留言