面向對象與面向過程
面向對象與面向過程
一、面向過程與面向對象的本質是哲學。
從本質上而言,面向過程的和面向對象的本質是處理事務的方式。
它們不是所謂的順序結構、類和抽象,也不是轉型重載和繼承等編程機制,而是如何理解事務,如何看待事務,如何處理事務的哲學思想。
一、面向過程
面向過程是最基本的編程思想,它基于事件本身的邏輯。
也就是要想做一件事,我們應該分哪幾步,先做什么后做什么。
譬如以一個飯店炒菜的事情為例,首先買菜,洗菜,切菜,然后熱鍋,燒油,炒制,調味,裝盤,最后查詢這道菜是那桌點的,把菜呈給對應的客人。
這種把一件事情細化為多個步驟,然后按順序完成的思想就叫做面向過程。
面向過程最核心的思路在于如何把一件事務按照邏輯拆解,譬如你肯定無法先熱鍋,然后裝盤,再切菜,再炒制,然后再洗菜。
二、面向對象
面向對象則是在面向過程基礎上進一步發展的團隊協作。在理解過程的基礎上,把任務合理的分給多個角色去做。
依然以飯店炒菜的例子為例,首先安排一個配菜員負責買菜,洗菜,和不斷切菜,再安排一個廚師熱鍋,燒油,炒制,調味,裝盤,最后再安排一個服務員負責上菜。
這種多個角色協作解決事務的思路就叫做面向對象。
面向對象的核心思路在于任務分配的合理,譬如你安排一個人負責熱鍋和買菜,一個人負責燒油和上菜,另一個人負責洗菜和裝盤,廚房大概就會亂成一團。
三、面向對象與面向過程的關系
1. 只有一個對象的面向對象是面向過程,有多組過程的面向過程是面向對象。
面向過程和面向對象并不是不同的,它們在一定程度上可以相互轉化。
當面向對象只有一個對象,任務全都分配給一個角色的時候,就沒有了所謂的面向過程。
同樣的,當有多個角色同時來解決同一個問題,每個角色負責一組行為時,也就從面向過程變成了面向對象。
1. 面向過程的核心思想是事件的邏輯,面向對象的核心思想是協作的秩序。
面向過程的核心思想是對事件按照邏輯進行合理的拆分,使之細化為按順序執行的步驟。
面向對象的核心思想是如何把任務進行合理的劃分,再分別交給不同的角色。
2. 面向過程是面向對象的基礎,沒有面向過程也就沒有面向對象
面向對象是依賴于面向過程的,要能夠對一個任務進行合理的劃分,必須首先了解這個任務原本大體是怎樣執行的,然后把原本一個角色完成的任務進行合理的拆分。而且拆分之后每個角色的工作還是面向過程的。
同樣以人舉例,面向過程是一個人做事,面向對象是許多個(一個人)一起協作。連基本的一個人都沒有的話,哪來的多人。而且就算一個任務分給多個人做了,每個人自己做事情不還是有邏輯順序的嗎?按上面餐館的例子,配菜員不還是得按買菜洗菜切菜的面向過程流程走嗎?
author:萬能的小奇喵(bilibili)

浙公網安備 33010602011771號