面向过程与面向对象编程的区别和优缺点
■面向過程與面向?qū)ο缶幊痰膮^(qū)別
轉(zhuǎn)載至:https://www.cnblogs.com/strivers/p/6681876.html
面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時候一個一個依次調(diào)用就可以了;
面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。
可以拿生活中的實(shí)例來理解面向過程與面向?qū)ο?#xff0c;例如五子棋,面向過程的設(shè)計思路就是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9、輸出最后結(jié)果。把上面每個步驟用不同的方法來實(shí)現(xiàn)。
如果是面向?qū)ο蟮脑O(shè)計思想來解決問題。面向?qū)ο蟮脑O(shè)計則是從另外的思路來解決問題。整個五子棋可以分為1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統(tǒng),負(fù)責(zé)繪制畫面,3、規(guī)則系統(tǒng),負(fù)責(zé)判定諸如犯規(guī)、輸贏等。第一類對象(玩家對象)負(fù)責(zé)接受用戶輸入,并告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的變化就要負(fù)責(zé)在屏幕上面顯示出這種變化,同時利用第三類對象(規(guī)則系統(tǒng))來對棋局進(jìn)行判定。
可以明顯地看出,面向?qū)ο笫且怨δ軄韯澐謫栴},而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設(shè)計中分散在了多個步驟中,很可能出現(xiàn)不同的繪制版本,因?yàn)橥ǔTO(shè)計人員會考慮到實(shí)際情況進(jìn)行各種各樣的簡化。而面向?qū)ο蟮脑O(shè)計中,繪圖只可能在棋盤對象中出現(xiàn),從而保證了繪圖的統(tǒng)一。
■面向過程與面向?qū)ο蟮膬?yōu)缺點(diǎn)
面向過程
優(yōu)點(diǎn):性能比面向?qū)ο蟾?#xff0c;因?yàn)轭愓{(diào)用時需要實(shí)例化,開銷比較大,比較消耗資源,比如單片機(jī)、嵌入式開發(fā)、Linux/Unix等一般采用面向過程開發(fā),性能是最重要的因素。?
缺點(diǎn):沒有面向?qū)ο笠拙S護(hù)、易復(fù)用、易擴(kuò)展
面向?qū)ο?/strong>
優(yōu)點(diǎn):易維護(hù)、易復(fù)用、易擴(kuò)展,由于面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特性,可以設(shè)計出低耦合的系統(tǒng),使系統(tǒng)更加靈活、更加易于維護(hù)?
缺點(diǎn):性能比面向過程低
易維護(hù):每個開發(fā)人員只需要維護(hù)自己所負(fù)則的那個類的功能字段和方法的定義和擴(kuò)展就OK了。
易復(fù)用:對象與對象之間相互獨(dú)立,功能與對象之前的耦合性小。
易擴(kuò)展:對象的屬于與方法擴(kuò)展性強(qiáng)。
從今天開始堅(jiān)持一周發(fā)三篇文章轉(zhuǎn)載于:https://www.cnblogs.com/mkl34367803/p/10630695.html
總結(jié)
以上是生活随笔為你收集整理的面向过程与面向对象编程的区别和优缺点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CF438E The Child and
- 下一篇: support library目录解释说