先有面向過程,而後退出面向對象 面向過程和麵向對象兩者都是軟體開發思想,先有面向過程,後有面向對象。在大型項目中,針對面向過程的不足推出了面向對象開發思想。 打個比方 蔣介石和毛主席分別是面向過程和麵向對象的傑出代表,這樣充分說明,在解決複製問題時,面向對象有更大的優越性。 面向過程是蛋炒飯,面向對 ...
先有面向過程,而後退出面向對象
面向過程和麵向對象兩者都是軟體開發思想,先有面向過程,後有面向對象。在大型項目中,針對面向過程的不足推出了面向對象開發思想。
打個比方
蔣介石和毛主席分別是面向過程和麵向對象的傑出代表,這樣充分說明,在解決複製問題時,面向對象有更大的優越性。
面向過程是蛋炒飯,面向對象是蓋澆飯。蓋澆飯的好處就是“菜”“飯”分離,從而提高了製作蓋澆飯的靈活性。飯不滿意就換飯,菜不滿意換菜。用軟體工程的專業術語就是“可維護性”比較好,“飯” 和“菜”的耦合度比較低。
細說區別
編程思路不同: 面向過程以實現功能的函數開發為主,而面向對象要首先抽象出類、屬性及其方法,然後通過實例化類、執行方法來完成功能。
封裝性:都具有封裝性,但是面向過程是封裝的是功能,而面向對象封裝的是數據和功能。
面向對象具有繼承性和多態性,而面向過程沒有繼承性和多態性,所以面向對象優勢是明顯。
面向過程語言代表:C語言
面向對象語言代表:Java、Python
面向對象與面向過程具體而言,有如下幾個方面的不同:
1、出發點不同
面向對象方法是用符合常規思維的方式來處理客觀世界的問題,強調把問題域的要領直接映射到對象之間的介面上。而面向過程的方法則強調的則是過程的抽象化與模塊化,它是以過程為中心構造或處理客觀世界問題的。
2、層次邏輯關係不同
面向對象的方法則是用電腦邏輯來模擬客觀世界中的物理存在的,以對象的集合類作為處理問題的單位,儘可能地使電腦世界向客觀世界靠攏,以使問題的處理更清晰直接,面向對象方法是用類的層次結構來體現類之間的繼承與發展。面向過程方法處理問題的基本單位是能清晰準確地表達過程的模塊,用模塊的層次結構概括模塊或模塊間的關係與功能,把客觀世界的問題抽象成電腦可以處理的過程。
3、數據處理方式與控製程序方式不同
面向對象方法將數據與對應的代碼封裝成一個整體,原則上其他對象不能直接修改其數據,即對象的修改只能由自身的成員函數完成,控製程序方式上是通過“事件驅動”來激活和運行程式。而面向過程方法是直接通過程式來處理數據,處理完畢後即可顯示處理的結果,在控制方式上是按照設計調用或返回程式,不能自由導航,各模塊之間存在著控制與被控制,調動與被調用的關係。
4、分析設計與編碼轉換方式不同
面向對象方法貫穿於軟體生命周期的分析,設計及編碼中,是一種平滑過程,從分析到設計再到編碼是採用一致性的模型表示,即實現的是一種無縫連接。而面向過程方法強調分析、設計及編碼之間按規則進行轉換貫穿於軟體生命周期的分析、設計及編碼中,實現的是一種有縫的連接。
方法重載和方法重寫(覆蓋)的區別
方法重載和方法重寫摘自上海尚學堂Java面試題集,這是Java程式員面試的基礎知識點,必須熟記於心!