函式程式設計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修改過]
相關文章
- 什麼是函式響應式程式設計(Functional Reactive Programming:FRP)函式程式設計FunctionReactFRP
- 程式設計思想基本概念之函數語言程式設計(Functional Programming)程式設計函數Function
- 函數語言程式設計functional programming的特點函數程式設計Function
- 設計模式_GoF設計模式Go
- GOF設計模式Go設計模式
- 三、GO 程式設計模式:FUNCTIONAL OPTIONSGo程式設計設計模式Function
- Java中的函數語言程式設計(二)函式式介面Functional InterfaceJava函數程式設計函式Function
- Rust語言之GoF設計模式: 模板方法模式RustGo設計模式
- Rust語言之GoF設計模式:原型模式RustGo設計模式原型
- Rust語言之GoF設計模式:迭代器模式RustGo設計模式
- Rust語言之GoF設計模式:工廠模式RustGo設計模式
- 函式程式設計函式程式設計
- GOF23--23種設計模式(一)Go設計模式
- Rust語言之GoF設計模式:責任鏈模式RustGo設計模式
- Rust語言之GoF設計模式:中介者Mediator模式RustGo設計模式
- Rust語言之GoF設計模式:抽象工廠模式RustGo設計模式抽象
- 實踐GoF的23種設計模式:命令模式Go設計模式
- 《遊戲設計模式》(Game Programming Patterns)遊戲設計設計模式GAM
- scala 函式程式設計函式程式設計
- 函式程式設計之道函式程式設計
- 誰有GOF的設計模式電子版。Go設計模式
- GoF設計模式新手討論專用帖Go設計模式
- Rust語言之GoF設計模式:Flyweight享元模式RustGo設計模式
- GoF設計模式三作者15年後再談模式Go設計模式
- 走近設計模式:寫程式碼一定要用設計模式嗎?設計模式
- 函數語言程式設計-鏈式程式設計RAC函數程式設計
- JavaScript 設計模式系列 – 自定義函式(惰性函式)JavaScript設計模式函式
- JavaScript 設計模式系列 - 自定義函式(惰性函式)JavaScript設計模式函式
- 實話設計模式:GOF《設計模式》不適合作為初學者入門讀物設計模式Go
- 【趣解程式設計】函式程式設計函式
- Windows 程式設計常用函式Windows程式設計函式
- 混合OO和Functional設計Function
- Rust語言之GoF設計模式:靜態工廠RustGo設計模式
- 老大,你看過GoF的設計模式沒有?Go設計模式
- Rust語言之GoF設計模式:備忘錄Memento模式RustGo設計模式
- 實踐GoF的23種設計模式:裝飾者模式Go設計模式
- Go語言實現GoF設計模式:介面卡模式Go設計模式
- 不用任何賦值的程式設計稱為*函式式*程式設計賦值程式設計函式