學了一年多的語言還沒有真正的搞清楚什麼是面向過程什麼是物件導向,今天整理一下,還希望大家可以提出自己的寶貴意見,謝謝。
第一大問題面向過程和物件導向的理解
向過程的概念:面向過程就是分析出我們完成一件事情所需要的步驟,然後用函式把這些步驟一步一步的實現,使用的時候在一步一步的按順序的呼叫。就像是洗臉:第一步先將洗臉盆裡接上水,第二步:是將毛巾放在盆裡浸濕,第三步:將毛巾擰乾,第四步:放在臉上進行擦拭。第五步:重複
二、三、四步直至洗好。
物件導向:是把構成問題的事情分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描述某個事物在整個問題的步驟中的行為。
可以拿生活中的例項來理我們拿汽車舉例:
面向過程:我們開車去某地首先我們要發動汽車—按照路線進行行駛——到達目的地——熄火下車 在面向過程的思想中我們關心的是完成這件事需要做的每一步操作,在這裡發動汽車、按照路線行駛、到達目的地、熄火就是每一步操作。每一步操作形成乙個函式,然後我們依次按順序呼叫每乙個函式
物件導向:我們只要關心汽車這個物件,而我們所執行的每一步操作都是汽車這個物件所具有的行為,而且對於這些行為的順序沒有強制的要求。
我在網上看到有人很形象的把面向過程和物件導向寫的程式分別形容為蛋炒飯和蓋澆飯。蛋炒飯入味均勻,吃起來香。但是如果我不想吃雞蛋就要重新製作乙份。但是蓋澆飯是飯菜分離,不同口味的人只需要根據自己的喜好來選擇喜歡吃的菜和飯。
引用大神的:
蓋澆飯的好處就是「菜」「飯」分離,從而提高了製作蓋澆飯的靈活性。飯不滿意就換飯,菜不滿意換菜。用軟體工程的專業術語就是「可維護性」比較好,「飯」 和「菜」的耦合度比較低。蛋炒飯將「蛋」「飯」攪和在一起,想換「蛋」「飯」中任何一種都很困難,耦合度很高,以至於「可維護性」比較差。軟體工程追求的目標之一就是可維護性,可維護性主要表現在3個方面:可理解性、可測試性和可修改性。物件導向的好處之一就是顯著的改善了軟體系統的可維護性。
第二大問題unity中update和fixedupdate的區別
第三大問題物件池
第四大問題協程和執行緒的區別
面試問題總結
參考 字首表示式的計算機求值 波蘭式 從右至左掃瞄表示式,遇到數字時,將數字壓入堆疊,遇到運算子時,彈出棧頂的兩個數,用運算子對它們做相應的計算 棧頂元素 op 次頂元素 並將結果入棧 重複上述過程直到表示式最左端,最後運算得出的值即為表示式的結果。字尾表示式的計算機求值 逆波蘭式 與字首表示式類似...
面試問題總結
1.兩個軟體如何傳送訊息的?底層就是通過socket實現的 基於socket實現客戶端向伺服器 socket scoket new socket 目標ip或網域名稱,目標埠 建立連線,如果網域名稱解析不了會拋unknownhostexception的異常 讀取從伺服器返回的資訊 流 buffered...
面試問題總結(一)
union和union all的區別 union要進行重複值掃瞄,效率比union all要低 union會自動壓縮多個結果集合中的重複結果,而union all則將所有的結果全部顯示出來,不管是不是重複。注意 使用union和union all必須保證各個select 集合的結果有相同個數的列,並...