函數語言程式設計 VS 物件導向程式設計
1.物件導向程式設計透過封裝不確定因素來使程式碼能被人理解;函數語言程式設計透過儘量減少不確定因素來使程式碼能被人理解。
2.封裝、作用域、可見性等OOP機制的存在意義,都是為了精細控制誰能夠感知和改變狀態,而當涉及多執行緒的時候,對狀態的控制就更復雜了,這些機制就是所謂的“不確定因素”。函數語言程式設計的思想是與其建立種種機制來控制可變的狀態,不如儘可能消滅可變的狀態這個不確定因素,依據是:假如語言不對外暴露那麼多有出錯可能的特性,那麼開發者就不那麼容易犯錯。
3.OOP的世界提倡開發者針對具體問題建立專門的資料結構,相關的專門操作以“方法”的形式附加在資料結構上。函數語言程式設計語言實現重用的思路是提倡在有限的幾種關鍵資料結構(如list、set、map)上運用針對這些資料結構高度最佳化過的操作,以此構成基本的運轉機構,開發者再根據具體用途,插入自己的資料結構和高階函式去調整機構的運轉方式。
2.封裝、作用域、可見性等OOP機制的存在意義,都是為了精細控制誰能夠感知和改變狀態,而當涉及多執行緒的時候,對狀態的控制就更復雜了,這些機制就是所謂的“不確定因素”。函數語言程式設計的思想是與其建立種種機制來控制可變的狀態,不如儘可能消滅可變的狀態這個不確定因素,依據是:假如語言不對外暴露那麼多有出錯可能的特性,那麼開發者就不那麼容易犯錯。
3.OOP的世界提倡開發者針對具體問題建立專門的資料結構,相關的專門操作以“方法”的形式附加在資料結構上。函數語言程式設計語言實現重用的思路是提倡在有限的幾種關鍵資料結構(如list、set、map)上運用針對這些資料結構高度最佳化過的操作,以此構成基本的運轉機構,開發者再根據具體用途,插入自己的資料結構和高階函式去調整機構的運轉方式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-2122843/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 物件導向變成 VS 函數語言程式設計物件函數程式設計
- 函數語言程式設計 vs 物件導向程式設計 vs 程式式程式設計的JS演示比較 - DEV函數程式設計物件JSdev
- Facebook 開源 Skip 物件導向+函數語言程式設計語言物件函數程式設計
- 物件導向的程式設計和函數語言程式設計基本相同的證據 - vavr物件程式設計函數VR
- 物件導向程式設計-java語言 第二週程式設計題物件程式設計Java
- 函數語言程式設計函數程式設計
- 物件導向程式設計物件程式設計
- Scala 函數語言程式設計(一) 什麼是函數語言程式設計?函數程式設計
- 函數語言程式設計-鏈式程式設計RAC函數程式設計
- .NET併發程式設計-函數語言程式設計程式設計函數
- 函數語言程式設計,真香函數程式設計
- python函數語言程式設計Python函數程式設計
- javascript函數語言程式設計JavaScript函數程式設計
- JavaScript 函數語言程式設計JavaScript函數程式設計
- Java 函數語言程式設計Java函數程式設計
- Python物件導向程式設計Python物件程式設計
- 程式設計思想 物件導向程式設計物件
- js物件導向程式設計JS物件程式設計
- 十三、物件導向程式設計物件程式設計
- 十六、物件導向程式設計物件程式設計
- Python 物件導向程式設計Python物件程式設計
- JavaScript建構函式,物件導向程式設計JavaScript函式物件程式設計
- 物件導向程式設計和`GP`泛型程式設計物件程式設計泛型
- 聊聊 Go 語言中的物件導向程式設計Go物件程式設計
- JavaScript-設計模式-物件導向程式設計JavaScript設計模式物件程式設計
- JavaScript設計模式之物件導向程式設計JavaScript設計模式物件程式設計
- JS物件導向程式設計(一):物件JS物件程式設計
- python函數語言程式設計一Python函數程式設計
- python函數語言程式設計二Python函數程式設計
- RAC的函數語言程式設計函數程式設計
- JavaScript 函數語言程式設計(一)JavaScript函數程式設計
- JavaScript 函數語言程式設計(三)JavaScript函數程式設計
- 函數語言程式設計前菜函數程式設計
- 函數語言程式設計雜談函數程式設計
- 初見函數語言程式設計函數程式設計
- JavaScript 函數語言程式設計(二)JavaScript函數程式設計
- 真的可以,用C語言實現物件導向程式設計OOPC語言物件程式設計OOP
- 程式設計正規化 —— 函數語言程式設計入門程式設計函數
- 物件導向程式設計C++物件程式設計C++