DEV Community

ian chen
ian chen

Posted on

OOA、OOD、OOP 的區別與關係說明

1. OOA(物件導向分析)

  • 聚焦「分析」階段,了解系統需求與問題域。
  • 找出系統中的物件(實體)、它們的屬性與行為,及物件間的關係。
  • 目標是建立一個符合需求的物件模型。

2. OOD(物件導向設計)

  • 聚焦「設計」階段,基於分析結果,定義系統架構。
  • 設計類別的結構(類別圖)、方法、繼承關係、介面、物件間的互動。
  • 確保系統設計能夠良好實作、擴充與維護。

3. OOP(物件導向程式設計)

  • 聚焦「實作」階段,用程式語言撰寫類別和物件。
  • 將設計階段的藍圖落實成可執行的程式碼。
  • 運用封裝、繼承、多型、抽象等物件導向特性。

OOD 與 OOP 的區別

  • OOD 是設計,屬於規劃層面:思考怎麼用物件去解決問題,定義類別和物件間的結構與行為。
  • OOP 是實作,屬於程式碼層面:把設計轉成程式碼,實現物件的屬性和方法。

常見狀況

  • 在實務上,很多人會混用 OOD 與 OOP 這兩個詞,因為設計與實作往往緊密結合,界線不一定非常明確。
  • 特別是小型專案或快速開發時,設計與實作常常同步進行。
  • 嚴格說來,兩者是不同階段,但都屬於物件導向軟體開發過程的一部分。

總結

階段 內容 目的
OOA 分析需求,找出物件與關係 理解系統需求與實體
OOD 設計系統架構與物件結構 規劃如何組織與互動
OOP 用程式語言撰寫物件與類別 實作設計、完成功能

因此,OOD 與 OOP 在本質與角色上有明確差異,但在實務中常常交織使用,不會造成衝突。

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.