面向過程和物件導向的理解

2021-07-31 11:47:10 字數 2505 閱讀 2834

面向過程和物件導向概念

作為乙個剛入行不久的程式設計師,現在對物件導向的理解與當初在大學課程中

老師講的物件導向已經有了比以前更加深刻的理解。可能是因為工作開發了一

段時間的原因吧!

大家知道以前老一批程式猿普遍使用的是面向過程解決問題,但是現在新一代的程式猿已經普遍使用物件導向的思想解決問題了。

下面我來舉個例子,我會用面向過程和物件導向解釋清楚。

我理解的面向過程:

面向過程:面向的是完成這件事的過程,強調的是完成這件事的動作。

我舉乙個非常經典的例子

把大象塞進冰箱裡,按照你日常的思維你會怎麼做?

1.開啟冰箱門

2.把大象塞進去

3.關閉冰箱門

剛才我們完成這個需求,我們腦海裡馬上想到去這樣做,對吧,在這個過程中,我

們強調了三個動作,開啟,塞進去,關閉,我們並沒有強調做這件事的人,

大象和冰箱,我們強調的是這三個動作,這就是面向過程的思想。

而我們在之前一般用的都是採用的面向過程的思想,那麼後來的程式猿為什麼會

從面向過程的思想轉化到物件導向的思想呢,那麼肯定是面向過程給我們帶來了一系

列的不方便,還是物件導向給我們帶來了一系列優點呢?好,我來舉個例子:

還是剛才這件事啊,如果說我讓孫全幹這件事,先看一下孫全的特點啊!

孫全,個子低,身材矮小,小屌絲

這個冰箱可能會很高,孫全會怎麼做呢?

1.孫全踩著板凳,開啟冰箱門

2.孫全找張肥幫忙把大象塞進冰箱

3.孫全踩著板凳,關閉冰箱門

這件事如果讓張肥做會怎麼做呢?

張肥  190cm 力氣非常大

1.張肥自己開啟冰箱門

2.張肥自己把大象塞進冰箱

3.張肥自己關閉冰箱門

我們觀察一下,會發現他們兩個人做同一件事的方式不同。

如果我們用面向過程來解決這件事兒,當執行這件事的人不同的時候,

我們需要為每個人量身定做解決事情的方法!那麼我們這樣做會有什麼缺

點呢?當我們更改乙個需求的時候,還是需要為每個人量身定做一套方法。

比如說你在把大象塞進冰箱之後,要親一下它的屁股,對於孫全,孫全會

踩著板凳親大象的屁股,對於張肥,不需要踩著板凳,可以直接親大象的

屁股。如果體現在**上,每個人寫的**還都不一樣!那麼,這就是面

向過程的問題!

物件導向,我查閱了好多資料,每個人有自己的一套理解方式,現在

我簡單總結一下。

物件導向 :找個物件幫你做事兒!

舉個例子,把大象塞進冰箱裡,這件事中出現了三個物件,有大象,冰箱,

還有你,那你應該把誰作為物件,我們做這個事才更簡單!如果是一人作為

物件的話,那麼還是面向過程的做法,會造成極大的不方便。

我們把冰箱作為物件:

那麼剛才的事情可以這麼說

1.冰箱可以被開啟,

2.大象可以被塞進冰箱裡

3.冰箱可以被關閉

我們比較一下這兩種說法,面向過程呢,我們一般採用主動的說法,面

向物件呢,一般採用被動的說法。通過觀察我們可以發現物件導向的說

發,會遮蔽掉一些差異,那麼不管是孫全也好,張肥也好,我不需要管

你的身高體重,我只知道你要做這幾件事,需要調我冰箱的幾個方法,

具體怎麼做的,我不需要知道。這就是物件導向的好處。

比如說孫全來了,

孫全 1孫全開啟了冰箱,具體怎麼做的,踩著板凳還是其他方法,我不

需要了解。

孫全 2孫全把大象塞進冰箱,他是自己塞的還是找人幫忙的,我也不需

了解。孫全 3孫全關閉冰箱門,具體過程我也不需要去了解。

那麼現在張肥來了

張肥張肥 1張肥做了第一件事

張肥 2張肥做了第二件事

張肥 3張肥做了第三件事 我們不需要了解他內部具體是怎麼做的這件事。

通過觀察比較,我們發現在剛才這件事的過程裡面,我還突出孫全、張肥

的身體特徵麼?我沒有,我是不是完全遮蔽了人與人之間的差異。這就是

物件導向的好處。那麼最終,我們找出乙個物件,遮蔽掉所有人之間的差

異,寫出一套通用的**。

物件導向:意在寫出乙個通用的**,遮蔽差異。

對於數學家來說,世界是有數字組成的。

對於攝影家來說,世界都是由一副一副組成的。

對於畫家來說,世界是由色彩組成的。

那麼對於我們程式設計師來說,世界是由物件組成的。

那麼在一件事中,我們怎麼才能把這個物件找到呢?

舉例關門

面向過程:

張三一腳把門踹緊了

李四輕輕的把門帶上了

王五門沒關嚴,留了個尾巴

如果我們用物件導向來描述這件事呢,那麼我們該把誰當做物件呢?

張三,李四,王五,還是門呢?

有了之前的理解,大家肯定會選門的吧!所以說物件一般都是被動的

那個!物件導向:

門可以被關

用物件導向描述,大家只需要知道門可以被關上,至於誰來關門,怎麼

關的不需要去了解了。

以後會不定期的更新!!!

物件導向和面向過程的理解

鏈結 什麼是物件,簡單來說物件就是現實世界存在的任何事務都可以稱之為物件,有著自己獨特的個性。用思維導圖來簡潔表示一下就是這樣 物件導向就是構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。什麼是過程,我認為過程就是步驟,是解決問題的按...

如何理解物件導向和面向過程

執行者思維 面向過程其實就是一種一步步完成某一件事情的思考方式 適和小規模程式,可以完成簡單的東西 只要一步步,乙個個實現完成就好了,通過過程完成任務是 執行者 思維。遇到問題首先想的的是在,第一步該幹嘛 第二步該幹嘛 第三步該幹嘛 第四步該幹嘛 如何開車 第一 啟動車 第二 掛擋 第三 踩油門 第...

對於面向過程和物件導向的理解

面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是首先分析問題的步驟 1 開始遊...