Design pattern並不是一種特定程式語言的技巧,而是一個解決特定軟體架構的方案,但現階段來說,探討design pattern都僅限於物件導向式的程式語言,例如:JAVA, C++,主要原因在於,產生design pattern的根本原因就是為了抽象化各種常見的問題,並提供抽象化的解決方法,而物件導向的程式語言提供軟體開發者能夠輕易做到抽象化的平台,因此大部分探討design pattern的書籍都以物件導向語言為範例。
用白話一點的講法是
如果有很多種演算法(做法),我就把演算法拉出去變成interface
如果有很多種XXX,我就把XXX拉出去變成interface
許多嵌入式的設備受限於其本身不具備足夠的記憶體與儲存空間,無法輕鬆將物件導向語言導入,而是採用對系統需求較低的C語言為主體,但對於design pattern的需求卻不會因此而減少,因此本章旨在介紹如何利用C語言的特性去做到抽象化。