實戰系列『影像處理軟體設計』- [9] 物件導向方法:設計模型(下)

更新於 發佈於 閱讀時間約 2 分鐘

一、動態模型

動態模型設計一般都是在類別模型設計完成後開始,此階段需要使用類別模型的類別。

動態模型設計不需要應用「設計原則」和「設計模式」,只需對照「使用案例模型」,並根據使用案例的特點,選一個適合的動態模型表述即可。

二、模型分類

參考 UML 標準,常見的動態模型如下:

  • 狀態模型→主要描述物件生命週期的狀態變化。
  • 活動模型→主要用來描述一個工作流程或計算流程。
  • 序列模型→主要用來描述物件按照時間順序組織的訊息互動過程,其關鍵特徵是強調按照「時間順序」組織物件的互動。
  • 協作模型→主要用來描述物件之間的關聯組知的訊息互動過程,其關鍵特徵是強調「物件關係」組織物件的互動。

(1) 建模實踐

基本上動態模型都可以從「使用案例模型」推導出來,但狀態模型會比其他模型複雜一些,因為需要綜合多個使用案例模型,從中提取出和某個物件狀態相關的內容,再統一設計狀態模型。

從使用案例模型推導出動態模型是一個「分解和分配」的過程。

(2) 建模技巧

在實際的專案進行過程中,其實每個子專案或功能,並不會都使用動態模型來描述,這主要是程式設計人員效率方面的考量。

設計動態模型主要是便於思考和理解實作過程;如果專案比較簡單,通常很容易理解,也就沒必要設計動態模型了。

考慮到效率和效果兩個因素,一般只需要針對一些關鍵、核心及複雜的專案或功能,進行動態模型設計即可。

但要注意,千萬不要直接按照動態模型撰寫程式碼,模型不等於虛擬碼、更不等於程式碼,模型的主要目的是指導程式碼的撰寫,但並非程式碼的文字敘述。

三、本章總結

  1. 設計階段將輸出設計模型。
  2. 物件導向設計更像是一門藝術。
  3. 設計模型主要包含兩個部分:靜態模型、動態模型。
  4. 從領域模型可以得到最初的設計類別。
  5. 「設計原則」和「設計模式」可以指導做出更好的物件導向程式設計。
  6. 設計原則主要是指 SOLID 原則。
  7. 設計模式是指 GoF 提出的設計模式。
  8. 根據框架或者規範的要求,拆分輔助類別。
  9. 動態模型主要有 4 種:狀態模型、活動模型、序列模型、協作模型。
  10. 動態建模不需要面面俱到。
  11. 動態建模不等於程式碼。
留言
avatar-img
留言分享你的想法!
avatar-img
一個工程師的創業之旅的沙龍
73會員
442內容數
閱讀可以用最低的成本來獲得別人經驗,培養閱讀能力,一生受益。但要記住,別只讓自己的大腦永遠處於「輸入狀態」,要適當地「輸出」自己的想法。透過閱讀輸入,再利用寫作輸出,就像「費曼學習法」說的一樣,教授到別人能夠了解,自己才算是領悟了這門學問。
2023/07/31
物件導向領域經過幾十年的演進,已經發展出很多成熟的指導方針和方法;其中最具代表性的就是「設計原則」和「設計模式」。進行物件導向類別設計,第一個要解決的問題是:類別從哪裡來?領域模型中的「領域類別」,便是設計類別中「軟體類別」最好的來源;透過「領域類別」啟發設計最初的「軟體類別」。
Thumbnail
2023/07/31
物件導向領域經過幾十年的演進,已經發展出很多成熟的指導方針和方法;其中最具代表性的就是「設計原則」和「設計模式」。進行物件導向類別設計,第一個要解決的問題是:類別從哪裡來?領域模型中的「領域類別」,便是設計類別中「軟體類別」最好的來源;透過「領域類別」啟發設計最初的「軟體類別」。
Thumbnail
2023/07/23
什麼是領域模型?領域模型是完成從需求分析到物件導向設計的一座橋樑。需求分析和物件導向並無直接關係,需求分析階段不區分是物件導向還是程序導向,要從「領域建模」才真正開始物件導向的工作。後續我們會使用一個「影像處理軟體」的使用案例來說明如何建立領域模型。
Thumbnail
2023/07/23
什麼是領域模型?領域模型是完成從需求分析到物件導向設計的一座橋樑。需求分析和物件導向並無直接關係,需求分析階段不區分是物件導向還是程序導向,要從「領域建模」才真正開始物件導向的工作。後續我們會使用一個「影像處理軟體」的使用案例來說明如何建立領域模型。
Thumbnail
2023/07/09
使用案例 (Use Case)是用來描述需求的流程,就是 5W1H8C 中的 How。有很多方法可以分析客戶需求,例如問卷調查、自由發想、資料分析、資料探勘、競爭對手分析等,可以參考「需求分析理論」的相關書籍;但最有效以及最直接的方法還是和客戶交流。只要掌握正確的方法,就可以完成良好的需求分析。
Thumbnail
2023/07/09
使用案例 (Use Case)是用來描述需求的流程,就是 5W1H8C 中的 How。有很多方法可以分析客戶需求,例如問卷調查、自由發想、資料分析、資料探勘、競爭對手分析等,可以參考「需求分析理論」的相關書籍;但最有效以及最直接的方法還是和客戶交流。只要掌握正確的方法,就可以完成良好的需求分析。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
在軟體開發領域,MVC(Model-View-Controller)是一種被廣泛使用的設計模式,它有助於將應用程序的不同部分進行組織、分離,以實現更好的可維護性和可擴展性。本文將深入介紹MVC模式的核心概念,以及如何在您的項目中應用這種強大的架構。
Thumbnail
在軟體開發領域,MVC(Model-View-Controller)是一種被廣泛使用的設計模式,它有助於將應用程序的不同部分進行組織、分離,以實現更好的可維護性和可擴展性。本文將深入介紹MVC模式的核心概念,以及如何在您的項目中應用這種強大的架構。
Thumbnail
這篇文章將會講述設計模式中的狀態模式,其資料源自於書籍、網路、個人理解,從簡介→架構→撰寫→測試的整個流程進行介紹與分享。
Thumbnail
這篇文章將會講述設計模式中的狀態模式,其資料源自於書籍、網路、個人理解,從簡介→架構→撰寫→測試的整個流程進行介紹與分享。
Thumbnail
一、前言   這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。 二、設計模式   在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。 1. 解決一再出現的問題   許多程式設
Thumbnail
一、前言   這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。 二、設計模式   在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。 1. 解決一再出現的問題   許多程式設
Thumbnail
這邊要來跟大家分享流程圖是什麼?它很重要嗎? 一、什麼是流程圖?   它可以幫我們簡化密密麻麻的程式,用圖表來說明這支程式運行的來龍去脈,包含著流程的步驟、決策、輸出/輸入的相關過程。   當我們在製作程式過程中,可以協助我們紀錄、規劃流程、甚至是介紹程式或未來自己要看的時候,流程圖就可以派上用場
Thumbnail
這邊要來跟大家分享流程圖是什麼?它很重要嗎? 一、什麼是流程圖?   它可以幫我們簡化密密麻麻的程式,用圖表來說明這支程式運行的來龍去脈,包含著流程的步驟、決策、輸出/輸入的相關過程。   當我們在製作程式過程中,可以協助我們紀錄、規劃流程、甚至是介紹程式或未來自己要看的時候,流程圖就可以派上用場
Thumbnail
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
Thumbnail
這篇文章將會講述類圖的基本介紹,並且詳細敘述從零開始製作完整的類圖流程。
Thumbnail
小心設計模式別亂用 📷 介紹 設計模式就是過去的人,根據常見的軟體設計的問題,提出的解決方案。 設計模式總共有23種,根據情境分成三大類型,建立型、結構型、行為型。 建立型模式(Creational Patterns) 簡單工廠(Simple Factory) 工廠方法(Factory) 抽象工廠
Thumbnail
小心設計模式別亂用 📷 介紹 設計模式就是過去的人,根據常見的軟體設計的問題,提出的解決方案。 設計模式總共有23種,根據情境分成三大類型,建立型、結構型、行為型。 建立型模式(Creational Patterns) 簡單工廠(Simple Factory) 工廠方法(Factory) 抽象工廠
Thumbnail
分類原則請參照這篇 狹義來說,我們把建模視為幾何建模的簡寫,但是廣義來說他應該是會包含發熱體行為,風扇行為,所有會影響到各方程式架設的因子。也就是說如果我們今天以最基本熱流模型,那就會有流的建模和熱的建模。 雖然說是流體建模,但是實際上卻是畫固體邊界,然後不屬於固體的部分通通是流體。一般概
Thumbnail
分類原則請參照這篇 狹義來說,我們把建模視為幾何建模的簡寫,但是廣義來說他應該是會包含發熱體行為,風扇行為,所有會影響到各方程式架設的因子。也就是說如果我們今天以最基本熱流模型,那就會有流的建模和熱的建模。 雖然說是流體建模,但是實際上卻是畫固體邊界,然後不屬於固體的部分通通是流體。一般概
Thumbnail
介紹 在過去的歷史裡開發程式都是以呼叫Function的方式來做程式開發,後來才有了物件導向設計的概念,而物件導向程式設計的概念就是,使用【物件】的方式來設計程式。 Q: 什麼是【物件】? A:【物件】會包含以下這四個特性: 抽象(Abstraction) 封裝(Encapsulation)
Thumbnail
介紹 在過去的歷史裡開發程式都是以呼叫Function的方式來做程式開發,後來才有了物件導向設計的概念,而物件導向程式設計的概念就是,使用【物件】的方式來設計程式。 Q: 什麼是【物件】? A:【物件】會包含以下這四個特性: 抽象(Abstraction) 封裝(Encapsulation)
Thumbnail
物件導向的概念,以python程式為範例。
Thumbnail
物件導向的概念,以python程式為範例。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News