日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

函数式和面向对象

發布時間:2024/4/14 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数式和面向对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是面向對象編程

面向對象是一種設計思想,面向對象的核心是 (class)和 對象 (object),通過類來抽象現實世界,通過對象來模擬現實世界。 面向對象的難點在于抽象,抽象的好壞很大程度決定了整個程序設計的好壞。

面向對象的設計中會有很多的層次結構,然后現實世界很多時候并沒有那么多層次結構, 這時,如果強行用面向對象的設計方式,反而會把問題復雜化,也會讓應對變化沒那么容易,所以產生了 設計模式 這種概念。 設計模式被很多人推崇,個人感覺設計模式進一步讓設計遠離現實世界,把對解決實際問題的關注變為對重構代碼的關注。

當然,面向對象也有它明顯的優勢,在代碼組織上結構清晰,有嚴格的訪問控制,同時簡單易懂,相對于函數式編程,更容易上手。

面向對象的核心概念

  • 封裝
  • 繼承
  • 多態

什么是函數式編程

函數式編程其實是比面向對象更早的編程方式,但是由于其對使用者有更高的要求(主要在代碼組織方面,將實際問題轉換為函數方面), 所有面向對象設計方式出現之后,一度被忽略,成為一種小眾的編程方式。

函數式的編程范式使得它更加適用于復雜數據處理,高并發的環境,這也是函數式編程最近又興起的原因之一。

  • 函數是一等公民,也就是函數和變量等其他數據類型一樣使用
  • 沒有副作用,函數保持獨立,和外部的交互僅限于 函數參數返回值

函數式編程核心概念

  • 不變性
  • 純函數
  • 高階函數

函數式 和 面向對象 比較

面向對象核心是狀態,函數式核心是數據

所以面向對象更適合對業務(復雜的狀態變化)的設計,而函數式適合對功能(復雜的數據變化)的設計, 我想,這也是面向對象應用廣泛的原因之一,畢竟大部分人接觸的都是業務開發。

隨著面向對象設計方式的發展,理論是越來越完善,復雜度也越來越高,面向對象的設計方式很多時候不再把目光投向實際的問題, 而是追求所謂的設計技巧。 函數式編程則更加直接,將問題轉化為對數據的處理,關注點更容易集中在問題本身。

函數式 和 AI

函數式編程能夠再度火起來,和 AI 也有一定的關系,機器學習本身就是對大量數據的學習和處理,通過數據來訓練出算法。 這種模式更加適合函數式編程,而面向對象面對這種未知結果的學習,抽象會非常困難。

轉載于:https://www.cnblogs.com/wang_yb/p/8558775.html

總結

以上是生活随笔為你收集整理的函数式和面向对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。