隨著硬體效能指數級增長,軟體規模與複雜度同步爆發,傳統面向過程方法暴露出嚴重局限,導致所謂「軟體危機」:交付延遲、成本失控、品質低落、難以維護。
面向過程方法的三大缺陷
- 功能與資料分離:不符合人類認知現實世界的方式(實體 = 狀態 + 行為),介面相容難維護。
- 模組化設計導致修改困難:資料結構變更波及所有操作該資料的函式,耦合度高。
- 自頂向下分解限制重用:功能分解綁定特定應用,難以跨專案重用;系統演進時架構僵化。
面向對象技術的應運而生
OOP 將資料與操作封裝為不可分割的整體(物件),採用資料抽象與資訊隱藏,符合人類思維習慣,有效控制複雜度、提升生產力。
方法論選擇的依據
OOP 非萬靈丹。選擇依據在於問題領域類型:
- 工程計算、演算法密集 → 面向過程可能更適合。
- 邏輯推理、機器證明 → 面向邏輯(Prolog)。
- 知識庫、專家系統 → 面向規則。
- 企業應用、GUI、領域模型豐富 → 面向對象優勢明顯。