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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

面向对象和面向过程_程序员给你解释:面向对象和面向过程的区别,到底是怎么回事?...

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象和面向过程_程序员给你解释:面向对象和面向过程的区别,到底是怎么回事?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天下午在一個組的項目回顧會議上,這個同事講了自己用DDD思想對三個模塊的重構。把之前在Service層的一些業務邏輯下沉到了領域層里,由之而引起的討論。

部門經理:“其實你的業務邏輯總體并沒有少,只是把邊界重新劃分了一下。”

一起參與開發的同事:“在第二個模塊中(任務系統,包括了任務拆分,狀態跟蹤等)這種思想比較有優勢,在一三項目中不是很明顯。”

于是引出了我的一個問題:“到底什么是面向對象,什么是面向過程,在什么情況下適合面向對象,什么場景下適用于面向過程?”

以C語言和Java語言為例: C語言沒有類,但是有結構體,結構體中不能有函數,只能有屬性。這說明了什么?說明了在面向過程的思考方式中,數據和操作是嚴格分離的

C語言中為什么函數需要定義到調用此函數的前面,也就是說先聲明后調用?如果按照流程化的思路來看這種設計方式,想要調用一個子流程,勢必要在調用之前就定義好

而在java的類中,就沒有函數定義先后的問題,這與面向過程和面向對象的最小定義粒度有關,面向過程的最小定義粒度為流程(方法、操作、函數),而在面向對象中,最小定義粒度為對象,這個對象的行為沒有先后,包含在對象這個大的容器中。

封裝、抽象、繼承、多態其實就是類比的對象進行的建模,比如以人為例,人有些屬性不想示人,有些屬性只能給指定的人了解,這就是封裝。人掌握的知識其實是現象的一種抽象。人繼承來來自父母的一些生活習慣,而又有所不同,這就是多態。

歸總,子類相對父類來說有不同的模型(對真實世界的建模),這是4種面向對象的終極原因。

為什么面向對象的思考方式更有利于擴展維護?拿一個工作崗位為例,一個人在一個工作崗位上,如果有一天這個崗位有了更多的工作要求,如果改動量較小,那么對該崗位的人進行技能培訓就可以了。如果要求多到一種程度,拆分成兩個人,或者拆分成多個崗位。而如果用面向過程的思路,那么每次改動,都相當于多了一個流程?(這里存疑,多流程的問題在哪?難維護的理由是什么?這里我沒有想明白)

面向過程要求人有更好的流程化思維方式,面向對象要求人有更好的抽象思維方式。那么如果有一天出現一個“面向文檔編程”呢?要求人有更好的把問題描述清楚的表達能力。換句話說,面向過程就是面向流程思考,面向對象就是針對模型思考

最后距離,如果我們描述入職流程,一個大牛的入職流程可能和一個應屆生的入職流程完全不一樣,如果把入職這個行為寫到employee的方法中,那么這就是面向對象的寫法,如果維護一個入職流程的方法,根據不同的人用switch

case的方式進行不同行為的跳轉,那么就是面向過程。

面向過程就是面向流程思考,面向對象就是針對模型思考

作者丨博客園:weggi

想要在程序員生涯內有更高的成就的話,最最重要的是盡可能的提升自己的編程能力,并且,與其想著怎么去提升,不如從現在開始動手動腦,如果對于C/C++感興趣的話,可以關注+私信小編【編程交流】有一些視頻希望可以幫助到你,學習不怕從零開始,就怕從不開始。

總結

以上是生活随笔為你收集整理的面向对象和面向过程_程序员给你解释:面向对象和面向过程的区别,到底是怎么回事?...的全部內容,希望文章能夠幫你解決所遇到的問題。

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