綜述
C是一門結(jié)構(gòu)化語言,重點(diǎn)在于數(shù)據(jù)結(jié)構(gòu)與算法,側(cè)重于對(duì)于輸入進(jìn)行運(yùn)算得到輸出(面向過程)。而C++考慮的是構(gòu)造一個(gè)對(duì)象模型,通過獲取對(duì)象的方法和屬性來得到輸出(面向?qū)ο螅?/p>
面向?qū)ο笈c面向程序
1. 區(qū)別
面向?qū)ο螅簩栴}拆解成多個(gè)步驟,通過一個(gè)一個(gè)步驟調(diào)用解決問題
面向?qū)ο螅簩栴}分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描述某個(gè)事物在整個(gè)問題中的行為
2. 例子
以五子棋為例:
面向過程:開始游戲-白子先走-更新棋盤-判斷輸贏-黑子執(zhí)棋-更新棋盤-判斷輸贏,然后不停重復(fù)直至分出勝負(fù)
面向?qū)ο螅涸O(shè)計(jì)出玩家(包括黑白雙方)、棋盤(保存棋盤狀態(tài)信息)和裁判(判定輸贏)等對(duì)象
3. 優(yōu)缺點(diǎn)
| 類別 | 優(yōu)點(diǎn) | 缺點(diǎn) |
|---|---|---|
| 面向過程 | 性能高 | 不如面向?qū)ο笠拙S護(hù)、易復(fù)用和易擴(kuò)展 |
| 面向?qū)ο?/td> | 易維護(hù)、易復(fù)用和易擴(kuò)展 具有封裝、繼承和多態(tài)等特性,可以設(shè)計(jì)出高內(nèi)聚低耦合的系統(tǒng) | 性能差:類調(diào)用時(shí)需要實(shí)例化,消耗一定的資源 |
Reference
[1] https://blog.csdn.net/tonglin12138/article/details/94555183