版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
UML中類(lèi)之間的關(guān)系UML(TheUnified Modeling Language )就是統(tǒng)一建模語(yǔ)言,不論它是怎么發(fā)展來(lái)的,也不論最新的官方Specification 或工業(yè)標(biāo)準(zhǔn)是哪個(gè)版本,我想總結(jié)一下工作中最常用的一些知識(shí):用UML語(yǔ)言描述類(lèi)的關(guān)系。1,關(guān)聯(lián)關(guān)系(Association)關(guān)聯(lián)關(guān)系是類(lèi)(也可以說(shuō)是對(duì)象)之間特定的對(duì)應(yīng)關(guān)系。按照對(duì)象的數(shù)量對(duì)比,可以分為:A一對(duì)一比如公民和公民身份卡之間的對(duì)應(yīng)關(guān)系。B一對(duì)多DepartmentEmployee10,*一個(gè)部門(mén)對(duì)應(yīng)0或者多位員工,一般而言一位員工只能屬于某一個(gè)部門(mén)。C多對(duì)多用戶(hù)和服務(wù)是多對(duì)多的關(guān)系,一個(gè)用戶(hù)可以注冊(cè) 0個(gè)或多個(gè)服務(wù),一個(gè)服務(wù)則可以被0個(gè)或者多個(gè)用戶(hù)復(fù)用。比如 Windows Live用戶(hù)可以激活郵件服務(wù)、 Space服務(wù)等,而這些服務(wù)不是被一個(gè)用戶(hù)所專(zhuān)有的。關(guān)聯(lián)的實(shí)質(zhì)從A類(lèi)型到B類(lèi)型的關(guān)聯(lián)是指在 A類(lèi)型中定義了B類(lèi)型作為屬性。如下列代碼:packageuml;publicclassCitizen{private CitizenshipCard card;//其他屬性publicCitizenshipCardgetCard(){returncard;}publicvoidsetCard(CitizenshipCard card){this.card=card;}}上述代碼演示了從 Citizen至UCitizenshipCard 的關(guān)聯(lián)。注意下圖箭頭方向:Citizen 吁CitizenshipCard11同樣可以建立CitizenshipCard 至UCitizen 的關(guān)聯(lián):Citizen二 ,匚ttizenshipCardI 1代碼表示為:packageuml;publicclassCitizenshipCard {private Citizen citizen;//其他屬性publicCitizen getCitizen() {return citizen;}publicvoid setCitizen(Citizen citizen) {this.citizen=citizen;}}如果僅僅建立從Citizen到CitizenshipCard 的關(guān)聯(lián)或者僅僅建立 CitizenshipCard到Citizen 的關(guān)聯(lián),都屬于單向關(guān)聯(lián),如果兩個(gè)方向的關(guān)聯(lián)都建立,就是雙向關(guān)聯(lián):是否建立雙向關(guān)聯(lián)要在實(shí)際項(xiàng)目中酌情而定。再看個(gè)雙向關(guān)聯(lián)的例子:Department packageuml;importjava.util.Set;publicclassDepartment{privateString name;privateSet<Employee>employees:publicStringgetName(){return name;}publicvoidsetName(String name){this.name =name;
publicSet<Employee>getEmployees()return}employees;publicvoidsetEmployees(Set<Employee>employees){this.employees=employees;employees){}Employeepackageuml;publicclassEmployee{private Stringname;private longjoinTime;private Department department;publicStringgetName(){return name;}publicvoidsetName(String name) {this.name=name;}publiclonggetJoinTime() {returnjoinTime;}publicvoidsetJoinTime(long joinTime){this.joinTime =joinTime;}publicDepartmentgetDepartment(){return}department;publicvoidsetDepartment(Departmentdepartment){this.department =department;}2,聚集關(guān)系(Aggregation)聚集者和被聚集者之間是一種 靈活的平臺(tái)分享關(guān)系。一個(gè)類(lèi)提供平臺(tái),把另外一個(gè)類(lèi)集成過(guò)來(lái),如下圖BankService將其他Services集成進(jìn)來(lái),統(tǒng)一為客戶(hù)提供風(fēng)格一致的服務(wù)。我們面對(duì)銀行的一個(gè)普通柜臺(tái)工作人員, 可以存取款項(xiàng),可以委托理財(cái),可以查詢(xún)賬戶(hù)余額,可以委托代交電費(fèi),還可以?huà)焓Щ蜾N(xiāo)戶(hù), 這些服務(wù)都是在一個(gè)地點(diǎn)由同一個(gè)用戶(hù)服務(wù)接口(BankService)完成的。類(lèi)似的例子還有計(jì)算機(jī)和外設(shè)之間的關(guān)系:計(jì)算機(jī)可以聚集U盤(pán)、掃描儀、打印機(jī)、手機(jī)等硬件,統(tǒng)一為用戶(hù)提供服務(wù),這種服務(wù)大大豐富了計(jì)算機(jī)本身的功能,也便于用戶(hù)統(tǒng)一使用。ATM也是一種BankService實(shí)例,我們面對(duì)ATM,也可以享受多種自助服務(wù)。3,構(gòu)成關(guān)系(Composition)構(gòu)成關(guān)系也是一種平臺(tái)分享關(guān)系,但是這種平臺(tái)是壟斷的、強(qiáng)制的。如身體和頭之間是一種構(gòu)成關(guān)系,頭只能在身體上,離開(kāi)這個(gè)平臺(tái),就沒(méi)有繼續(xù)存在的機(jī)會(huì)了。構(gòu)成關(guān)系有兩層含義:1,整體(父元素)和部分(子元素)之間的關(guān)系;2,部分(子元素)的生命周期隸屬于整體(父元素)的生命周期,父元素消亡,子元素級(jí)聯(lián)消亡。HeadAttf/bates?JpetjifonsArmArtr/butesBodyOper^tfonsd I如何區(qū)分關(guān)聯(lián)關(guān)系、聚集關(guān)系和構(gòu)成關(guān)系?關(guān)聯(lián)關(guān)系、聚集關(guān)系和構(gòu)成關(guān)系,都屬于廣義的關(guān)聯(lián)關(guān)系,三種關(guān)系的在面向?qū)ο蟮木幊陶Z(yǔ)言中表現(xiàn)方式是一致的(參考:1,關(guān)聯(lián)關(guān)系關(guān)聯(lián)的實(shí)質(zhì))。但是它們的本質(zhì)區(qū)別是存在的:實(shí)質(zhì)元素生命周期舉例關(guān)聯(lián)關(guān)系所屬關(guān)系彼此獨(dú)立用戶(hù)與訂單聚集關(guān)系靈活平臺(tái)分享彼此獨(dú)立主板與內(nèi)存條構(gòu)成關(guān)系強(qiáng)制平臺(tái)分享國(guó)破家亡”身體和腦袋;腦袋和耳朵4,依賴(lài)關(guān)系(Dependency)對(duì)象管理組織(OMG)在其最新的UML規(guī)范(V2.1.12007-02-05 )上是這么描述依賴(lài)關(guān)系的:依賴(lài)關(guān)系是指一個(gè)單獨(dú)的或者一組的模型元素從規(guī)范或者實(shí)現(xiàn)的角度,需要其他的模型元素的存在。完整的含義是:依賴(lài)方(客戶(hù)方、需求方)的元素要么從語(yǔ)義層面,要么從結(jié)構(gòu)層面,依賴(lài)供應(yīng)方元素(有時(shí)不僅是一個(gè))的定義這就是規(guī)范說(shuō)明”,為了支持對(duì)各種實(shí)現(xiàn)者的指導(dǎo),它堅(jiān)持自己的抽象風(fēng)格,從而不太方便人們的理解。簡(jiǎn)單而言,依賴(lài)關(guān)系是一種局部使用關(guān)系。 A類(lèi)使用B類(lèi),則說(shuō)明A類(lèi)依賴(lài)于B類(lèi),圖示如下:ABAttributes >AttributesOperationsOperationsA類(lèi)在兩種情況下使用B類(lèi):1,A類(lèi)負(fù)責(zé)構(gòu)造B類(lèi)的實(shí)例,即A類(lèi)使用B類(lèi)的構(gòu)造器【圖示】【代碼】packageuml;publicclassCarFactory{publicCarmakeNewCar(){returnnewCar();}}2,A類(lèi)使用B類(lèi)實(shí)例的其他方法或者屬性【圖示】PersonCarAttiibutes >AttributesOpeutions+drive20fTice(myCar:Car):voidQper&tioits+run():void【代碼】packageuml;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育法規(guī)押題練習(xí)試題B卷含答案
- 2024年無(wú)線(xiàn)呼叫器項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 2024年煤制合成氨項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 三年級(jí)數(shù)學(xué)計(jì)算題專(zhuān)項(xiàng)練習(xí)及答案集錦
- 視覺(jué)、情感與認(rèn)同:視聽(tīng)綜藝節(jié)目的文化認(rèn)同建構(gòu)路徑
- 牛津譯林版英語(yǔ)高一上學(xué)期期末試題及答案指導(dǎo)
- 2024年橋梁建設(shè)協(xié)議格式實(shí)例
- 二手房經(jīng)紀(jì)服務(wù)個(gè)性化協(xié)議樣本
- 2024年非全日制員工協(xié)議示范文本
- 2024年試用期間協(xié)議期限規(guī)定詳解
- 項(xiàng)目式教學(xué)設(shè)計(jì)與實(shí)施
- 講文明樹(shù)新風(fēng)主題班會(huì)課件-圖文
- 復(fù)習(xí)提綱-高二歷史選擇性必修一二
- 糖尿病藥物治療
- 內(nèi)蒙古烏梁素海生態(tài)修復(fù)
- 2024年政府辦事-身份證知識(shí)筆試歷年真題薈萃含答案
- 部編版七年級(jí)上冊(cè)道德與法治期中模擬試卷(附答案)
- 初三化學(xué)第一單元檢測(cè)質(zhì)量分析
- 危重病人護(hù)理評(píng)估及安全管理
- 工業(yè)自動(dòng)化的柔性制造與定制化生產(chǎn)
- 小班化教學(xué)和合作學(xué)習(xí)
評(píng)論
0/150
提交評(píng)論