設計模式針對特定場景、重設計、對語言要求不高;編程範式針對廣泛問題領域、擁有完整理論體系、具全局性/系統性/滲透性、需語言或工具支援建立抽象機制。同樣思想用在系統結構叫架構模式、局部實現叫設計模式、指導編程實踐叫編程範式。語言本來就圍繞核心範式設計。
| 範式 | 核心概念 | 關鍵突破 | 代表語言 | 主要缺點 |
|---|---|---|---|---|
| 命令式/過程式 | 命令/過程 | 突破單一主程序與非結構化限制 | Fortran/Pascal/C | 數據與代碼脫節,難維護 |
| 函數式/應用式 | 函數 | 突破機器思維限制,模擬數學思維 | Scheme/Haskell | 運行效率與表現力不如過程式 |
| 邏輯式 | 斷言 | 突破邏輯與控制粘合限制 | Prolog/Mercury | 運行效率低、可掌控性差、思維差異大 |
| 物件式 | 物件 | 突破數據與代碼分離限制 | Smalltalk/Java | 數學/符號處理缺乏認知基礎,效率不如過程式 |
| 併發式/並行式 | 進程/執行緒 | 突破串行限制 | Erlang/Oz | 增加複雜度,加重程式設計師負擔 |
| 泛型式 | 算法 | 突破靜態類型語言限制 | Ada/Eiffel/C++ | 影響可讀性,過度使用致代碼膨脹 |
| 元編程 | 元程序 | 突破語言常規語法限制 | Lisp/Ruby/JavaScript | 過於強大,運用不當超出控制 |
| 切面式 | 切面 | 突破橫切關注點無法模組化限制 | AspectJ/AspectC++ | 降低可預測性/可控性,調試困難,性能損耗 |
| 事件驅動 | 事件 | 突破順序/同步流程限制 | C#/VB.NET | 機制複雜,不如流程式自然易懂 |
「若能以神導形、以形傳神,則看似平白無趣的程序也能寫出詩畫般的意境。」範式匯總表既是知識總結,也是未來編程指南。
