函式程式設計Functional Programming 會取代GOF設計模式嗎?
非常初級的問題在stackoverflow討論:
函式程式設計Functional Programming 會取代GOF設計模式嗎?oop - Does Functional Programming Replace GoF Design Patterns?。
我認為stackoverflow幾個回答得不算很精準,GoF設計模式分為建立型模式 結構型模式和行為型模式。
傳統OO擅長表達結構型模式,而FP擅長於行為模式,當然GoF的行為模式有一些可能是針對OO語言的,而在FP語言中一些行為模式可能無需了,比如Command,但是職責鏈也還是需要的,類似DBC(Design by Contact)。另外,行為如果沒有結構去規範管理,會發生行為滿天飛,直至失控,這實際是傳統程式導向程式設計的最大問題所在。
我們從GOF模式中學習到的是一種結構型別思維和行為函式思維,這是兩種不同的邏輯體系,是四大基本邏輯體系的兩種,沒有誰能替代誰。
[該貼被banq於2012-10-20 10:11修改過]
相關文章
- 三、GO 程式設計模式:FUNCTIONAL OPTIONSGo程式設計設計模式Function
- Java中的函數語言程式設計(二)函式式介面Functional InterfaceJava函數程式設計函式Function
- 函式程式設計函式程式設計
- Rust語言之GoF設計模式: 模板方法模式RustGo設計模式
- Rust語言之GoF設計模式:原型模式RustGo設計模式原型
- Rust語言之GoF設計模式:迭代器模式RustGo設計模式
- Rust語言之GoF設計模式:工廠模式RustGo設計模式
- GOF23--23種設計模式(一)Go設計模式
- 實踐GoF的23種設計模式:命令模式Go設計模式
- Rust語言之GoF設計模式:Flyweight享元模式RustGo設計模式
- Rust語言之GoF設計模式:責任鏈模式RustGo設計模式
- Rust語言之GoF設計模式:中介者Mediator模式RustGo設計模式
- Rust語言之GoF設計模式:抽象工廠模式RustGo設計模式抽象
- Rust語言之GoF設計模式:備忘錄Memento模式RustGo設計模式
- Rust語言之GoF設計模式: 直譯器Interpreter模式RustGo設計模式
- 函數語言程式設計-鏈式程式設計RAC函數程式設計
- 走近設計模式:寫程式碼一定要用設計模式嗎?設計模式
- select函式socket程式設計函式程式設計
- JavaScript 設計模式系列 – 自定義函式(惰性函式)JavaScript設計模式函式
- 不用任何賦值的程式設計稱為*函式式*程式設計賦值程式設計函式
- Rust語言之GoF設計模式:靜態工廠RustGo設計模式
- Rust語言之GoF設計模式:介面卡AdapterRustGo設計模式APT
- Go語言實現GoF設計模式:介面卡模式Go設計模式
- 實踐GoF的23種設計模式:裝飾者模式Go設計模式
- 函式設計函式
- 揚帆起航:從指令式程式設計到函式響應式程式設計程式設計函式
- 函數語言程式設計讓你忘記設計模式函數程式設計設計模式
- 設計模式,你相信嗎,只用兩個函式實現事務!設計模式函式
- Bash程式設計007——函式(一)程式設計函式
- JS 命令式 宣告式 函式式 程式設計?JS函式程式設計
- 鮑勃大叔:SOLID原則適合函式程式設計嗎?Solid函式程式設計
- 函式響應式程式設計與RxSwift函式程式設計Swift
- SAP Cloud Application Programming 程式設計模型(CAP)的設計準則CloudAPP程式設計模型
- java設計模式之單例模式你真的會了嗎?(懶漢式篇)Java設計模式單例
- JavaScript函數語言程式設計之pointfree與宣告式程式設計JavaScript函數程式設計
- 程式設計模式-表驅動程式設計程式設計設計模式
- python是函數語言程式設計嗎Python函數程式設計
- Ardunio和HAL庫函式程式設計函式程式設計
- 面向切面程式設計 ( Aspect Oriented Programming with Spring )程式設計Spring