## 連載:面向對象葵花寶典:思想、技巧與實踐(24) - 設計模型
完成領域類到軟件類的轉換,這就是面向對象領域設計階段的主要任務。
經過領域模型的分析后,面向對象已經初具雛形,但領域類并不能指導我們進行編碼工作,因為領域類只是從用例模型中提煉出來的反應業務領域的概念,而并不是真正意義上的軟件類。
?
“革命尚未成功,同志還需努力”,我們需要再進一步,完成**領域類到軟件類的轉換**,這就是面向對象領域設計階段的主要任務。
?
設計階段是整個面向對象分析和設計的高潮階段。在設計階段中,我們將要輸出設計模型,并且需要綜合各種方法、技巧,運用十八般武藝,使出渾身解數,以求能夠設計出滿足各種需要的設計方案。
?
這也是最考驗設計師功力的時候,因為設計并沒有一個量化的標準,也沒有一個標準答案,更多的時候需要設計師綜合知識、技能、經驗、靈感等因素,綜合權衡而得出一個方案。世界上找不到兩片相同的葉子,同樣,你也找不到兩個完全一樣的設計方案。毫不夸張的說,面向對象的設計更多時候是一項藝術。
?
雖然我們說面向對象設計是一門藝術,但這并不意味著只有天才才能進行面向對象設計,面向對象設計也是有一定的規律和方法可尋的,我們將在接下來的章節逐一介紹。
?
## 【設計模型總覽】
設計模型主要包含2部分內容:**靜態模型、動態模型**,任何一個模型的缺失或者不完善,都將導致最終的設計質量不高,甚至可能導致最終的系統沒有實現業務需求。
?
靜態模型又可以稱為“類模型”,主要關注系統的“靜態”結構,描述了系統包含的類,?以及類的名稱、職責、屬性、方法,類與類之間的關系。
動態模型關注系統的“動態”行為,描述類本身的一些動作或者狀態變化,以及類之間如何配合以完成最終的業務功能。只有結合靜態模型和動態模型,我們才能夠真正的將一個系統描述清楚。
?
靜態模型和動態模型對于后續的編碼也具有不同的指導意義。靜態模型主要用于指導類的聲明,包括類名稱,屬性名,方法名;而動態模型主要用于指導類的實現,主要就是每個方法內部的具體實現。
- 前言
- (1) - 程序設計思想的發展
- (2) - 面向對象語言發展歷史
- (3) - 面向過程 vs 面向對象
- (4) - 面向對象是瑞士軍刀還是一把錘子?
- (5) - 面向對象迷思:面向對象導致性能下降?
- (6) - 不要說你懂“類”
- (7) - “對象”新解
- (8) - “接口” 詳解
- (9) - “抽象類” 詳解
- (10) - “抽象” 詳解
- (11) - “封裝” 詳解
- (12) - “繼承” 詳解
- (13) - “多態” 詳解
- (14) - 面向對象開發技術流程
- (15) - 需求詳解
- (16) - 需求分析終極目的
- (17) - 需求分析518方法
- (18) - 用例分析
- (19) - 功能點提取
- (20) - 用例圖的陷阱
- (21) - SSD
- (22) - 領域模型
- (23) - 領域建模三字經
- (24) - 設計模型
- (25) - 類模型
- (26) - 類模型三板斧
- (27) - 動態模型設計
- (28) - 設計原則:內聚&耦合
- (29) - 高內聚低耦合
- (30) - SRP原則
- (31) - OCP原則
- (32) - LSP原則
- (33) - ISP原則
- (34) - DIP原則
- (35) - NOP原則
- (36) - 設計原則如何用?
- (37) - 設計模式:瑞士軍刀 or 錘子?
- (38) - 設計模式之道
- (39) - 設計原則 vs 設計模式
- (40) - DECORATOR模式
- (完)- 書籍已經出版