“面向過程”(Procedure Oriented)是一種以過程為中心的編程思想。就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調(diào)用就可以了。
面向過程其實是最為實際的一種思考方式,就算是面向?qū)ο蟮姆椒ㄒ彩呛忻嫦蜻^程的思想。可以說面向過程是一種基礎的方法。它考慮的是實際地實現(xiàn)。一般的面向過程是從上往下步步求精,所以面向過程最重要的是模塊化的思想方法。
面向?qū)ο蟮母拍?/div>
簡單地說 面向?qū)ο缶幊蹋∣bject Oriented Programming)簡稱OOP 就是使我們分析、設計和實現(xiàn)一個系統(tǒng)的方法盡可能地接近我們認識一個系統(tǒng)的方法。面向?qū)ο蟮膬?yōu)點主要體現(xiàn)在代碼的可重用性、可擴展性和可管理性上。OOP的四個基本機制 :抽象、封裝、繼承與派生、多態(tài)性
面向?qū)ο蠹夹g主要圍繞以下幾個概念:
對象、抽象數(shù)據(jù)類型、類、類型層次(子類)、繼承性、多態(tài)性。
面向?qū)ο骎S面向過程
面向過程:
過程化設計先確定算法,再確定數(shù)據(jù)結(jié)構(gòu);面向過程的程序員習慣于建立數(shù)據(jù)結(jié)構(gòu)存放數(shù)據(jù)并定義方法(函數(shù))來操作數(shù)據(jù);
面向?qū)ο螅?/strong>
面向?qū)ο缶幊滔却_定數(shù)據(jù)結(jié)構(gòu),再確定算法;而面向?qū)ο蟪绦騿T則構(gòu)造對象模型,將數(shù)據(jù)與方法組織在一起。
可以拿生活中的實例來理解面向過程與面向?qū)ο?,例如五子棋,面向過程的設計思路就是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9、輸出最后結(jié)果。把上面每個步驟用不同的方法來實現(xiàn)。
如果是面向?qū)ο蟮脑O計思想來解決問題。面向?qū)ο蟮脑O計則是從另外的思路來解決問題。整個五子棋可以分為1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統(tǒng),負責繪制畫面,3、規(guī)則系統(tǒng),負責判定諸如犯規(guī)、輸贏等。第一類對象(玩家對象)負責接受用戶輸入,并告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的變化就要負責在屏幕上面顯示出這種變化,同時利用第三類對象(規(guī)則系統(tǒng))來對棋局進行判定。
可以明顯地看出,面向?qū)ο笫且怨δ軄韯澐謫栴},而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設計中分散在了多個步驟中,很可能出現(xiàn)不同的繪制版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而面向?qū)ο蟮脑O計中,繪圖只可能在棋盤對象中出現(xiàn),從而保證了繪圖的統(tǒng)一。