1. 程式人生 > 實用技巧 >面向物件和麵向過程

面向物件和麵向過程

在官方的解釋裡面,面向物件是

面向物件是相對於面向過程來講的,面向物件方法,把相關的資料和
方法組織為一個整體來看待,從更高的層次來進行系統建模,更貼近事物的自然執行模式。

面向物件將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充套件性。

在軟體業發展的初期,程式編寫都是以演算法為核心的,程式設計師會把資料和過程分別作為
獨立的部分來考慮,資料代表問題空間中的客體,程式程式碼則用於處理這些資料,這種
思維方式直接站在計算機的角度去抽象問題和解決問題,被稱為面向過程的程式設計思想。
與此相對,面向物件的程式設計思想則站在現實世界的角度去抽象和解決問題,它把資料和
行為都看作物件的一部分,這樣可以讓程式設計師能以符合現實世界的思維方式來編寫和組

織程式。面向物件的程式設計思想極大地提升了現代軟體開發的效率和軟體可以達到的規模,
但是現實世界與計算機世界之間不可避免地存在一些差異。例如,人們很難想象現實中
的物件在一項工作進行期間,會被不停地中斷和切換,物件的屬性(資料)可能會在中
斷期間被修改和變髒,而這些事件在計算機世界中是再普通不過的事情。

面向過程:

一種以過程為中心的程式設計思想。這些都是以什麼正在發生為主要目標進行程式設計,不同於面向物件的是誰在受影響。
與面向物件明顯的不同就是封裝、繼承、類。

所以當面試官問到如何理解Java是面向物件的語言,我個人的想法就是應該跟面向過程相比。

面向物件將物件作為程式的基本單元,將程式和資料封裝其中。使程式設計師能夠不用過多注意程式內部的細節而去使用它。與面向過程不同,面向過程是以過程為中心的思想。以正在發生為主要目標進行程式設計,以演算法為核心,程式設計師會把資料和過程分別作為獨立的部分來考慮,這是站在計算機的角度去抽象和解決問題。

與此相對,面向物件的程式設計思想則站在現實世界的角度去抽象和解決問題,它把資料和行為都看作物件的一部分,這樣可以讓程式設計師能以符合現實世界的思維方式來編寫和組織程式。面向物件的程式設計思想極大地提升了現代軟體開發的效率和軟體可以達到的規模。面向物件的語言的特點是封裝、繼承和多型,能夠使程式碼解耦合,用更短的程式碼來實現相同的邏輯。