日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

面向對象設計

自從面向對象編程語言在軟件開發中成為主流之后,遵循面向對象技術特點的軟件設計工作,也一并發展了起來。

首先要提出一個問題,就是設計的工作是要做什么?

面向對象設計與統一建模語言UML

 

它包括的范圍其實是很廣泛的,從搜集用戶需求,進行業務分析,到繪制系統流程圖等。可以說,在動手編寫代碼之前,程序員要做的都屬于設計工作。

就像建造房屋一樣,先確定要造的房屋類型,然后是選址,設計樣式。最后工程師帶領施工隊按照設計圖紙將房子造出來。

而面向對象技術,因為其封裝、繼承、多態等特點,在對現實世界建模時,可以方便地以自然思維將事物抽象為計算機可處理的數據。關于面向對象技術的詳細說明,可參看往期文章學好面向對象編程語言的關鍵,在于掌握它們的共通結構與特性 。

要做的事情清楚了,思維工具也有了,接下來就是如何將工作成果表述出來。一個相當有力的工具就是統一建模語言(Unified Modeling Language,簡稱UML),下一節會對其進行入門級的介紹。

最后會以一個示例講述在面向對象設計中,如何應用UML來完成建模工作。

UML概述

UML雖然也是一門“語言”,但它其實是一套圖形化的符號系統。UML最主要的作用,就是在現實世界與程序代碼之間建起一座橋梁。

這就是UML的“統一”所要求的,所以它的各種圖形都有著嚴格的定義。包括形狀、連接線的方向、方法與屬性的標明等。

遵循統一標準的好處,就是方便了溝通。當設計的各個階段的成果繪制成UML圖保存下來時,那么無論是團隊內部協作,還是對外交流,大家都省去了學習符號表示法的時間,可以直接掌握設計意圖。

面向對象設計與統一建模語言UML

 

UML 2 定義了13種圖形,我們可以了解一下,對于重要的圖形,會給出圖示。所有圖形采用bouml工具繪制。

用例圖:表示系統提供的功能和使用者之間的關系。

面向對象設計與統一建模語言UML

用例圖

類圖:表示類的規格和類之間的關系。

面向對象設計與統一建模語言UML

類圖

對象圖:表示實例之間的關系。

面向對象設計與統一建模語言UML

對象圖

時序圖:將實例之間的相互作用表示為時間序列。

面向對象設計與統一建模語言UML

時序圖

活動圖:表示一系列處理中的控制流程。

面向對象設計與統一建模語言UML

活動圖

通信圖:將實例之間的相互作用表示為組織結構。

面向對象設計與統一建模語言UML

通信圖

狀態機圖:表示實例的狀態變化。

面向對象設計與統一建模語言UML

狀態機圖

組件圖:表示文件和數據庫、進程和線程等軟件的實現結構。

面向對象設計與統一建模語言UML

組件圖

部署圖:表示硬件、網絡等系統的物理結構。

面向對象設計與統一建模語言UML

部署圖

復合結構圖:表示具有整體-部分結構的類的運行時結構。

包圖:表示包之間的關系。

交互概覽圖:將根據不同條件執行不同動作的時序圖放到活動圖中進行表示。

定時圖:采用帶數字刻度的時間軸來表示實例之間的狀態遷移和相互作用。

建模

什么是統一說了,用到的圖形語言也說了,最后就得說一說怎么建模了。我們進行面向對象的設計工作,終歸是要讓計算機來幫助我們處理那些繁瑣、重復性的工作。

那么,接下來我們就以一個租車業務為示例,使用UML工具進行設計過程吧。我們模仿實現一個線上租車應用,為了簡化討論,只提及最關鍵的幾個功能點。

業務分析階段

用戶想要租一輛車開,第一步是要先挑選合適的車。例如是城市代步,還是郊游遠行等。選好車之后,就是預約下單。用戶辦理好手續,將車開走使用,最后完成歸還手續。

那么,對以上場景分析之后,可以通過活動圖把整體流程畫出來。

面向對象設計與統一建模語言UML

租車業務整體流程

需求定義階段

從上述業務分析可知,這個線上租車系統可以承擔的自動化工作,包括展示車輛信息,處理預訂訂單,車輛出庫,跟蹤車輛行駛情況,以及車輛歸還入庫這些功能。

使用用例圖展示客戶與服務提供商可以使用的功能。

面向對象設計與統一建模語言UML

租車業務功能用例

系統設計階段

系統功能點梳理出來之后,就是對系統中的各個關鍵對象進行定義。車輛對象(Car)是基本單元,所有的租賃業務都要圍繞它展開。接下來是汽車展示對象(ShowCar),它可以從車輛對象取得可供展示的信息,例如車型、廠商、顏色等。

當用戶選定車輛之后,就可以執行預訂功能。租賃管理對象(RentServer)將會接受訂單、收取押金和預付款。用戶取車時RentServer則進行出庫處理,并通知車輛跟蹤對象(TraceCar)持續監控車輛運行情況。

用戶使用完,歸還車輛時,RentServer則從TraceCar查詢車況,確認無誤后則執行入庫處理,退還用戶押金。

據以上描述,我們可以先畫出類圖。

面向對象設計與統一建模語言UML

租車業務類圖

從上圖可以看到,Car作為系統的基本單元,被其他類聚合使用。關于聚合,這是一種整體與個體之間的關系,即has-a關系。而組合則要更高一級,是包含關系。例如汽車與發動機就是組合關系,因為離開了發動機,汽車就不可用了。

關聯關系則比聚合還要弱一級,但需要注意的是,在程序代碼中,關聯與聚合的語法是一樣的,它們的差異是存在于語義上的。這也是UML設計能比代碼包含更多信息的優勢。

類圖表示的是類之間的靜態關系,要看到對象實例之間的消息調用,則還要使用時序圖。下面分步驟繪制,先看預訂流程的時序圖。

面向對象設計與統一建模語言UML

租車預訂時序圖

接下來是用戶歸還車輛的時序圖。

面向對象設計與統一建模語言UML

歸還車輛時序圖

對象間的交互已經有了,接下來就是具體方法的實現過程。說明方法的執行過程,使用活動圖比較適合。下面選取CheckOut方法,對其繪制活動圖進行說明。

面向對象設計與統一建模語言UML

CheckOut流程活動圖

至于其他功能,有興趣的同學們可以自行繪制。實際項目所產出的UML設計,則會復雜得多,但只要掌握好面向對象設計的理念,以及UML工具的圖形細節,那么無論是閱讀既有設計,還是自己通過繪圖表達設計想法,都能夠做到得心應手。

分享到:
標簽:UML
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定