標籤:執行個體化 size 返回 規則 技術分享 aik nbsp 過程 比較
2018-04-29
存在必然合理
軟體開發方式
一、面向過程
"面向過程"(Procedure Oriented)是一種以過程為中心的編程思想。這些都是以什麼正在發生為主要目標進行編程。
面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
例如五子棋,面向過程的設計思路就是首先分析問題的步驟:
1、開始遊戲,2、黑子先走,3、繪製畫面,4、判斷輸贏,5、輪到白子,6、繪製畫面,7、判斷輸贏,8、返回步驟2,9、輸出最後結果。
把上面每個步驟用不同的方法來實現。
面向過程最小的程式單元是方法。
優點:效能比物件導向高,因為類調用時需要執行個體化,開銷比較大,比較消耗資源,比如單片機、嵌入式開發、Linux/Unix等一般採用面向過程開發,效能是最重要的因素。
缺點:沒有物件導向易維護、易複用、易擴充
二、物件導向
物件導向是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。
例如五子棋,物件導向的設計則是從另外的思路來解決問題。
整個五子棋可以分為:
1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統,負責繪製畫面,3、規則系統,負責判定諸如犯規、輸贏等。第一類對象(玩家對象)負責接受使用者輸入,並告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的變化就要負責在螢幕上面顯示出這種變化,同時利用第三類對象(規則系統)來對棋局進行判定。
可以明顯地看出,物件導向是以功能來劃分問題,而不是步驟。
物件導向最小程式單元是類。
優點:易維護、易複用、易擴充,由於物件導向有封裝、繼承、多態性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護。
缺點:效能比面向過程低。
三大特徵:
- 封裝
- 繼承
- 多態
二、Java物件導向(2)_軟體開發方式