UML類別圖: 傳遞參數和Dependency - 自學程式誌

文章推薦指數: 80 %
投票人數:10人

『Class Student uses class Course』則是圖一英文的描述式,而它的動詞關鍵字 ... 換句話說,我們可以由類別圖關係線(dependency, aggregation, composition. Qt 安裝與設置 入門篇 Qt與GoogleMap API說明 Chrome 基本操作 隱私權 當機 軟體密技 VirtualBox 去廣告 Excel2013 雜談 胖子工程師辛酸史 台灣故事 快樂方法 科技新知 Searchformisempty! WHAT'SNEW? Loading... 較新的文章 較舊的文章 首頁 UML類別圖:傳遞參數和Dependency CarolCheng 清晨7:05 軟體架構, C++, UML Dependency 圖一.類別圖:Dependency關係 如上圖所示,當類別Student相依另一個類別Course,並且在成員函數將類別Course被用來傳遞參數或區域變數時,這兩者關係稱為『Dependency(相依性)』。

『Class Student usesclass Course』則是圖一英文的描述式,而它的動詞關鍵字就是『Uses(使用)』。

在程式開發者眼中,它經常被稱作『Coupling(耦合)』。

換句話說,我們可以由類別圖關係線(dependency,aggregation,composition...)知道模組間的耦合度,當類別的關係線越多,它的耦合度就越高。

在UML,傳遞參數主要有以下三種: in:輸入參數的內容不能被修改  唯讀 StarUML不顯示在圖上 inout :輸入參數的內容可以被修改 此參數被你當輸入和輸出 建議使用Pass byreference,不會呼叫CopyConstructor out:與inout大略相同,此參數只當作輸出 以下將圖一的類別圖轉換C++的程式碼,並且增加成員函數Enrolled區分實作唯讀的方法。

圖二.Dependency範例。

左邊:類別圖右邊:原始碼 如下圖所示,在C++實作UML的IN主要有兩種方式:『PassbyValue』和『PassbyConstReference』。

然而,PassbyValue主要的缺點是『當類別過於龐大,花太多時間複製物件的內容到新物件』,甚至影響程式的性能。

另一方面,若在PassbyReference加入修飾字const,不但編譯器會出現警告訊息當他人修改參數內容,而且防止不預期的結果,尤其當程式者未在自己的類別實作CopyConstructor。

圖三.成員函數Enrolled和isEnrolled的比較表 Reference: UnderstandingthisUMLdiagram?,cplusplus.com http://www.cplusplus.com/forum/general/62927/ in,out,inout,returnparameterdirectioninUML, stackoverflow http://goo.gl/uZvgsl ApplyingUMLandPatterns:UMLClassDiagrams, CraigLarman http://goo.gl/6TYb2q facebook twitter google+ fbshare CarolCheng 0 comments: 張貼留言 Follow: PopularPosts VirtualBox教學:重設硬碟(.vdi)大小(下) 之前在重設硬碟(.vdi)大小(上)教你如何利用cmd修改硬碟vdi大小,然而虛擬電腦的作業系統仍然無法使用多出來空間,因此為了使虛擬電腦能完整使用系統槽的硬碟空間(本範例40GB),你需要在VirtualBox磁碟分割的開機光碟(ISO檔)後,啟動後即可對虛擬電腦的硬碟進行... VirtualBox教學:重設硬碟(.vdi)大小(上) 之前講述如何新增WindowsWindows7(上)(下),然而若一開始給系統糟大小不夠,就可能使你的虛擬電腦變慢,因此我們就需要將虛擬電腦的硬碟變大.如圖一所示,我的虛擬電腦硬碟大小只有25GB,然而若將虛擬電腦的windows7進行更新,硬碟空間就有點不夠,因... 胖子工程師辛酸史:如何應對無聊人士 有一天,專案經理走到胖子與工程師B中間後,他一開口就抱怨說:『工程師B,你介面上某一個字打錯,知道嗎?還有我不是將待修正的bugs已經寫到GoogleDrive,你們修改的時間也太慢了吧!』工程師B聽到後,微微點頭說:『知道了,我立即修正!』聽到這些話的胖子不禁回想起某一次... [Windows764-bit]安裝Qt5.4MinGW 2014年12月Qt正式發佈5.4版,這次不但增加支援WinRT和Windows手機,而且新增相對應的模組。

這次也將軟體分成以下四個版本:社區版(Community)用於PC端,嵌入式和手機應用程式開發獨立移動版(IndieMobile)... Chrome當機(4):重設使用者設定檔 若你之前三篇都無法解決Chrome當機的問題,你可以試試重設使用者設定檔.如果你習慣使用Chrome登入瀏覽器,以便於在任何電腦都能使用自己客製化的Chrome,然而若你的使用者設定檔有任何毀損的話,Chrome將出現錯誤訊息「真糟糕!GoogleChrome當掉了﹗」... LikeusonFacebook Labels 人文素養 下載影片 心態調整 手機定位 去廣告 好用軟體 快樂的方法 拒絕Chrome更新 物件導向 科技新知 紀錄片感想 胖子工程師辛酸史 時間管理 第三方函式庫管理 軟體架構 軟體教學 部落格技巧 惡意軟件 無痕模式 發人深省 感謝 溝通的技巧 資料結構與演算法 電子紋身 電腦截圖 輕重緩急 模組化手機 擋youtube廣告 獨木不成林 螢幕錄影 優酷下載 壓抑的台灣 職場厚黑學 職場應對 blogger教學 Boost C++ Chrome ChromeJavascript Chrome功能 Chrome的隱私權 Chrome書籤 Chrome耗電 Chrome帳號管理 Chrome當機 Chrome綁架 Chrome擴充功能 Excel教學 Excel圖表 Git Google服務 kmplayer去廣告 NeckTattoo QCheckBox QComboBox QJson QSqlTableModel Qt Qt安裝 Qt設置 Qt與GoogleMap Qt觀念澄清 QTableView QtBasic QtClass singlylinkedlist Skype去廣告 SQLITE TED UML UML軟體 VirtualBox教學 VS方案管理 網誌存檔 ►  2018 (1) ►  四月 (1) ►  2016 (1) ►  七月 (1) ▼  2015 (14) ►  十二月 (2) ►  七月 (1) ►  五月 (3) ►  四月 (3) ▼  二月 (5) [免費截圖]PicPick加入浮水印 UML類別圖:傳遞參數和Dependency UML類別圖:Aggregationvs.Composition [Windows764-bit]安裝Qt5.4MinGW UML類別圖:基本概念篇 ►  2014 (42) ►  十月 (3) ►  八月 (5) ►  六月 (1) ►  五月 (3) ►  四月 (3) ►  三月 (7) ►  二月 (8) ►  一月 (12) ►  2013 (57) ►  十二月 (19) ►  十一月 (23) ►  十月 (14) ►  七月 (1) ►  2012 (3) ►  十一月 (2) ►  八月 (1) 自學程式誌©2015.AllRightsReserved. CreatedbyThemeXpose



請為這篇文章評分?