2011-03-02 150 views
0

我只是想知道。使OOP明顯優於傳統的結構化程序。我理解封裝,繼承,多態等。我想知道是否有更低級別的功能,也許硬件級別,其中OOP可能更好。提前感謝!面向對象的編程問題

回答

4

,我不知道我們能在所有情況下說「顯著更好」。我們不同意衡量什麼,所以「更好」很難判斷。和「顯着」?更難。

這也是不真實的,一個面向對象的風格是最適合所有的問題。

我認爲面向對象的發明,因爲它很好地映射到一遇與對象建模的世界。將問題劃分爲維護狀態和行爲的軟件組件可以更容易地將大問題分解爲更小,更易於管理的部分。允許組件擁有其數據使得更容易知道狀態更改的位置。

,但我們仍然有程序,功能和聲明的編程風格。

+0

對不起,令人困惑的問題。謝謝!只是想澄清我的想法。 – maru 2011-03-02 13:48:13

3

如果你不指望indirect jumps,沒有什麼硬件級別上,讓OOP低級別的優勢。 (但跳錶已經在使用了OOP歲前開始普及。)

OOP的主要優點就是易於造型。這也列出了面向對象的有用性的界限,因爲有些問題不適合面向對象的建模。

3

他們會告訴你很多東西,但最重要的兩個原因是:

  1. 從對象的角度思考是inuitional人類。
  2. 可維護性
2

在同一硬件上運行的所有程序。軟件開發領域的每一個進化步驟都只會讓我們更容易表達我們想要的東西。

2

OOP用於使編程更容易爲人類。但是接近機器人的意思,所以你可以說,OOP並不是真正意義上的非常低級的任務。

0

我不認爲OOP適用於低級別(如果我正確地理解你),因爲它是一種抽象(與許多其他軟件開發範例一樣),當你使用更高級別的構造來構建軟件時,它是有意義的,但不是機器代碼,例如。在任何情況下,如果你在低級別上引入OOP(假設允許在CPU級別上繼承),無論如何,這很可能是在現有的CPU命令之上實現的更高級別的抽象。

0

OOP它不是一個硬件,物理問題。

這是所有關於如何找到更好的編碼實踐,它賦予生產力,效率,可伸縮性和可維護性。

例如,它的發展歷程是因爲它提供的功能在過去的20年中顯示出成功故事,首先不是OOP Smalltalk,C++到Java,C#,Ruby,Python等等。

關於硬件優化的其他要點是由具體的OOP編程語言編譯器或解釋器做出的實現決定。

因此,在一天結束時,問題應該是:「這種基於OOP的編程語言硬件是否比其他基於結構化編程的編程語言更好地優化?」。