面向對象編程思想和麪向過程編程思想的區別

這裏體現的是兩種JS的編程思想:面向對象編程和麪向過程編程,兩者都屬於是編程思想,各有優缺點

面向過程

       在項目開發中會有各種的邏輯方法,有的是交互,有的是創建,有的是求結果,面向過程編程是把編程的重心放在方法實現的過程中,由上到下,由高到低的順序執行,一步一步逐步細化

優勢:在項目規模不大的情況下,更能直觀的表現出方法邏輯,更容易定位錯誤,整體的執行順序一目瞭然

劣勢:隨着項目的開發不斷深入,代碼量會越來越多,執行的方法也是會越來越複雜,這時候就會出現需要打亂順序的情況,導致代碼的可維護性變差,

面向對象:

       是一種以對象爲中心的編程思想,他把我們要執行方法,拆成許多個類,利用對象的屬性和方法打到執行動作的目的,需要的時候就去調用

優勢:模塊化程度更深,更容易解決大型的複雜的業務邏輯,可以做到隨時取用,可編輯性和可維護性更高,在一些複雜場景,比如需要臨時更改中間某一處的執行順序和動作,面向對象能更好的銜接

劣勢:面向對象編程的要求更高,考慮的維度更廣,邏輯也更加複雜一些,對一些新手不是很友好,存在方法執行快慢造成打斷現象,在一些中小項目中或許有點事倍功半

二者對比:

一、出發點不同

前者以執行過程爲主,後者以對象屬性和方法爲主

二、邏輯層次關係和維度的不同

後者更貼近客觀生活,由主題去執行動作

三、延展性不同

後者可以在橫向和縱向有更深的延展性

四、動作執行順序和實現原理的不同

前者以過程來驅動數據,後者以事件驅動的方式,對象自身的屬性和數據只能有自己的功能去執行修改

 

舉例:

一、把大象裝進冰箱

面向過程:

 打開冰箱(冰箱) → 裝填(冰箱,大象) → 關門(冰箱)

面向對象:

冰箱.開門() → 冰箱.裝填(大象) → 冰箱.關門()

二、客戶通過站點寄快遞(涉及多個維度的執行動作)

面向過程:

送件(客戶) → 收件(站點) → 付款(客戶) → 登記(客戶,站點) → 分揀(站點) → 郵寄(站點)

面向對象:

客戶.送件() → 站點.收件() → 客戶.付款() → 站點.登記()、客戶.登記() → 站點.分揀() → 站點.郵寄()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章