一、傳統結構化開發的局限
- 重用性差:功能分解導致模塊耦合高,難以跨項目復用。
- 可維護性差:修改往往牽一髮動全身,維護成本高。
- 難適應需求變化:以「過程」為中心,用戶需求變更常引發系統結構大調整。
二、面向對象基本概念
| 概念 | 說明 |
| 對象 | 客觀世界實體抽象,封裝數據(屬性)與操作(方法) |
| 類 | 同類對象的抽象描述,對象是類的實例 |
| 消息 | 對象間通信機制,包含接收者、方法名、參數 |
| 方法 | 類中操作的具體實現 |
| 類結構 | 繼承關系(is-a,泛化/特化)與組合關系(has-a,整體/部分) |
三、面向對象三大核心特征
1. 封裝性
將數據與操作綁定,對外僅暴露接口,內部實現隱藏。實現模塊化、信息隱藏,降低耦合。
2. 繼承性
- 單繼承:一個子類繼承一個父類
- 多繼承:子類繼承多個父類(C++ 支持,Java 用接口模擬)
- 作用:代碼復用、建立類層次、支持多態基礎
3. 多態性
同一操作作用於不同對象產生不同行為。分為:
- 編譯時多態:函數重載、模板
- 運行時多態:虛函數覆蓋(需基類指針/引用指向派生對象)
四、面向對象要素(4+1 視角)
- 抽象:捕捉本質,忽略細節
- 封裝:接口與實現分離
- 共享:繼承實現代碼/結構共享
- 強調對象結構而非過程結構
五、主流面向對象開發方法
| 方法 | 提出者/時間 | 核心特點 |
| Booch 方法 | Grady Booch | 強調對象分解符合人類認知,微觀設計強 |
| Coad/Yourdon 方法 | 1989 | 結合大系統經驗,系統化識別類與層次 |
| OMT 方法 | Rumbaugh 等 1991 | 對象建模技術,分析/設計/實現三模型 |
| UML 統一建模語言 | 1995-1997 標準化 | 融合 Booch/OMT/OOSE,成為事實標準,支持全生命周期建模 |
六、UML 核心圖分類
- 結構圖:類圖、對象圖、組件圖、部署圖、包圖、復合結構圖
- 行為圖:用例圖、序列圖、通信圖、狀態機圖、活動圖、時序圖、交互概覽圖
七、最佳實踐原則(SOLID)
- S 單一職責原則
- O 開閉原則(對擴展開放,對修改關閉)
- L 里氏替換原則
- I 接口隔離原則
- D 依賴倒置原則
- 上一篇文章: C語言實作:字串中數字提取與排序、山脈陣列二分查找演算法解析
- 下一篇文章: 判斷二叉樹是否為二叉搜索樹(BST)的遞歸算法實現
Copyright ©
程式碼之家 All Rights Reserved