2016-07-22 74 views
1

當我看到許多網站。一些人可以互換使用面向對象的編程和命令式編程,而另一些人則說他們是不同的。命令式和麪向對象編程有什麼區別?

我想知道面向對象和命令以及這些範例如何區別的區別。或者如果他們沒有任何區別。

+0

這個問題會更適合程序員.stackexchange.com –

+2

@RobK不,它真的不會。關於這個主題和關於術語的神聖戰爭有幾本書。這可能不是論文以外的任何地方。 – enderland

+0

@enderland「減少不適合」呢?但我們同意這肯定不適合這裏。 –

回答

5

這是一個棘手的問題,因爲涉及的術語對不同的人來說通常意味着不同的事情。

粗略地說(雖然有些人會說「嚴格地說」)命令與聲明相反。

嚴格的OO支持者可能會說OO是聲明式的。在David West的這個名字和這個博客的書中看到OO的「Object Thinking」風格:http://www.yegor256.com/

OO因爲它通常實踐經常會「散發」(同樣,其他人將會非常不贊同)成爲一種非常程序化和必要的風格,您開始告訴計算機做什麼而不是描述和建模現實世界(從某種意義上說)與你的對象。

Here's可能有用的視頻。它對比的過程式編程和麪向對象,併爲我們的目的「程序」大致爲「勢在必行」的代名詞。)

我知道這是不是一個偉大的答案,但也許它很有用。

+0

OOP幾乎是隱喻性的,就像程序性和命令性範式之間的中間人一樣? – attachPost

+0

@attachPost,請編輯你的問題,或要求一個新的問題,而不是在評論中開始討論。 – jaco0646

+1

不完全確定你的意思@attachPost,但我會說OOP可以被認爲是命令式或聲明式,這取決於你如何定義OOP。爲了充分披露,我正在轉向認爲「良好」OOP(正確理解OOP)的說法是基本上是說明性的。越緊迫或程序化越成爲你忽略了這一點。理想情況下,兩種方法的混合應該不會太多(如果有的話)。這個觀點對很多人來說並不會很好。但你至少應該知道這兩個「極端」。 :) –

0

從上到下,有兩種命令式語言的主要亞型。

  • 過程語言(例如BASIC,FORTRAN) - ,其中的代碼和數據被視爲完全獨立的,並且具有簡單的代碼進行操作上數據的範例。

  • 面向對象(OO)語言 - 數據和代碼(以方法的形式)被捆綁在一起成爲對象。在OO語言中,元數據(例如類信息)或多或少地施加額外的結構。

+0

不要將編程語言與編程範例混淆。大多數現代語言支持多種範例。 – jaco0646

相關問題