欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
UML圖中類(lèi)之間的關(guān)系:依賴(lài),泛化,關(guān)聯(lián),聚合,組合,實(shí)現
UML圖中類(lèi)之間的關(guān)系:依賴(lài),泛化,關(guān)聯(lián),聚合,組合,實(shí)現
分類(lèi):設計模式java 2012-06-07 18:34 624人閱讀評論(2)舉報
類(lèi)與類(lèi)圖
1) 類(lèi)(Class)封裝了數據和行為,是面向對象的重要組成部分,它是具有相同屬性、操作、關(guān)系的對象集合的總稱(chēng)。
2) 在系統中,每個(gè)類(lèi)具有一定的職責,職責指的是類(lèi)所擔任的任務(wù),即類(lèi)要完成什么樣的功能,要承擔什么樣的義務(wù)。一個(gè)類(lèi)可以有多種職責,設計得好的類(lèi)一般只有一種職責,在定義類(lèi)的時(shí)候,將類(lèi)的職責分解成為類(lèi)的屬性和操作(即方法)。
3) 類(lèi)的屬性即類(lèi)的數據職責,類(lèi)的操作即類(lèi)的行為職責
一、依賴(lài)關(guān)系(Dependence):假設A類(lèi)的變化引起了B類(lèi)的變化,則說(shuō)名B類(lèi)依賴(lài)于A(yíng)類(lèi)。
依賴(lài)關(guān)系(Dependency) 是一種使用關(guān)系,特定事物的改變有可能會(huì )影響到使用該事物的其他事物,在需要表示一個(gè)事物使用另一個(gè)事物時(shí)使用依賴(lài)關(guān)系。大多數情況下,依       賴(lài)關(guān)系體現在某個(gè)類(lèi)的方法使用另一個(gè)類(lèi)的對象作為參數。
在UML中,依賴(lài)關(guān)系用帶箭頭的虛線(xiàn)表示,由依賴(lài)的一方指向被依賴(lài)的一方。
public class Driver
{
public void drive(Car car)
{
car.move();
}
……
}
public class Car
{
public void move()
{
......
}
……
}
依賴(lài)關(guān)系有如下三種情況:
1、A類(lèi)是B類(lèi)中的(某中方法的)局部變量;
2、A類(lèi)是B類(lèi)方法當中的一個(gè)參數;
3、A類(lèi)向B類(lèi)發(fā)送消息,從而影響B(tài)類(lèi)發(fā)生變化;
二、泛化關(guān)系(Generalization):A是B和C的父類(lèi),B,C具有公共類(lèi)(父類(lèi))A,說(shuō)明A是B,C的一般化(概括,也稱(chēng)泛化)
泛化關(guān)系(Generalization)也就是繼承關(guān)系,也稱(chēng)為“is-a-kind-of”關(guān)系,泛化關(guān)系用于描述父類(lèi)與子類(lèi)之間的關(guān)系,父類(lèi)又稱(chēng)作基類(lèi)或超類(lèi),子類(lèi)又稱(chēng)作派生類(lèi)。在UML中,泛      化關(guān)系用帶空心三角形的直線(xiàn)來(lái)表示。
在代碼實(shí)現時(shí),使用面向對象的繼承機制來(lái)實(shí)現泛化關(guān)系,如在Java語(yǔ)言中使用extends關(guān)鍵字、在C++/C#中使用冒號“:”來(lái)實(shí)現。
public class Person
{
protected String name;
protected int age;
public void move()
{
……
}
public void say()
{
……
}
}
public class Student extends Person
{
private String studentNo;
public void study()
{
……
}
}
在UML當中,對泛化關(guān)系有三個(gè)要求:
1、子類(lèi)與父類(lèi)應該完全一致,父類(lèi)所具有的屬性、操作,子類(lèi)應該都有;
2、子類(lèi)中除了與父類(lèi)一致的信息以外,還包括額外的信息;
3、可以使用父類(lèi)的實(shí)例的地方,也可以使用子類(lèi)的實(shí)例;
三、關(guān)聯(lián)關(guān)系(Association):類(lèi)之間的聯(lián)系,如客戶(hù)和訂單,每個(gè)訂單對應特定的客戶(hù),每個(gè)客戶(hù)對應一些特定的訂單,再如籃球隊員與球隊之間的關(guān)聯(lián)(下圖所示)。
其中,關(guān)聯(lián)兩邊的"employee"和“employer”標示了兩者之間的關(guān)系,而數字表示兩者的關(guān)系的限制,是關(guān)聯(lián)兩者之間的多重性。通常有“*”(表示所有,不限),“1”(表示有且僅有一個(gè)),“0...”(表示0個(gè)或者多個(gè)),“0,1”(表示0個(gè)或者一個(gè)),“n...m”(表示n到m個(gè)都可以),“m...*”(表示至少m個(gè))。
關(guān)聯(lián)關(guān)系(Association) 是類(lèi)與類(lèi)之間最常用的一種關(guān)系,它是一種結構化關(guān)系,用于表示一類(lèi)對象與另一類(lèi)對象之間有聯(lián)系。
在UML類(lèi)圖中,用實(shí)線(xiàn)連接有關(guān)聯(lián)的對象所對應的類(lèi),在使用Java、C#和C++等編程語(yǔ)言實(shí)現關(guān)聯(lián)關(guān)系時(shí),通常將一個(gè)類(lèi)的對象作為另一個(gè)類(lèi)的屬性。
在使用類(lèi)圖表示關(guān)聯(lián)關(guān)系時(shí)可以在關(guān)聯(lián)線(xiàn)上標注角色名。
1)  雙向關(guān)聯(lián): 默認情況下,關(guān)聯(lián)是雙向的。
public class Customer
{
private Product[] products;
……
}
public class Product
{
private Customer customer;
……
}
2 ) 單向關(guān)聯(lián):類(lèi)的關(guān)聯(lián)關(guān)系也可以是單向的,單向關(guān)聯(lián)用帶箭頭的實(shí)線(xiàn)表示.
public class Customer
{
private Address address;
……
}
public class Address
{
……
}
3) 自關(guān)聯(lián): 在系統中可能會(huì )存在一些類(lèi)的屬性對象類(lèi)型為該類(lèi)本身,這種特殊的關(guān)聯(lián)關(guān)系稱(chēng)為自關(guān)聯(lián)。
public class Node
{
private Node subNode;
……
}
4) 重數性關(guān)聯(lián): 重數性關(guān)聯(lián)關(guān)系又稱(chēng)為多重性關(guān)聯(lián)關(guān)系(Multiplicity),表示一個(gè)類(lèi)的對象與另一個(gè)類(lèi)的對象連接的個(gè)數。在UML中多重性關(guān)系可以直接在關(guān)聯(lián)直線(xiàn)上增加一個(gè)數字表示與之對應的另一個(gè)類(lèi)的對象的個(gè)數。
表示方式
多重性說(shuō)明
1..1
表示另一個(gè)類(lèi)的一個(gè)對象只與一個(gè)該類(lèi)對象有關(guān)系
0..*
表示另一個(gè)類(lèi)的一個(gè)對象與零個(gè)或多個(gè)該類(lèi)對象有關(guān)系
1..*
表示另一個(gè)類(lèi)的一個(gè)對象與一個(gè)或多個(gè)該類(lèi)對象有關(guān)系
0..1
表示另一個(gè)類(lèi)的一個(gè)對象沒(méi)有或只與一個(gè)該類(lèi)對象有關(guān)系
m..n
表示另一個(gè)類(lèi)的一個(gè)對象與最少m、最多n個(gè)該類(lèi)對象有關(guān)系 (m<=n)
public class Form
{
private Button buttons[];
……
}
public class Button
{
}
四、聚合關(guān)系(Aggregation):表示的是整體和部分的關(guān)系,整體與部分 可以分開(kāi).
聚合關(guān)系(Aggregation) 表示一個(gè)整體與部分的關(guān)系。通常在定義一個(gè)整體類(lèi)后,再去分析這個(gè)整體類(lèi)的組成結構,從而找出一些成員類(lèi),該整體類(lèi)和成員類(lèi)之間就形成了聚合   關(guān)系。
在聚合關(guān)系中,成員類(lèi)是整體類(lèi)的一部分,即成員對象是整體對象的一部分,但是成員對象可以脫離整體對象獨立存在。在UML中,聚合關(guān)系用帶空心菱形的直線(xiàn)表示。
public class Car
{
private Engine engine;
public Car(Engine engine)
{
this.engine = engine;
}
public void setEngine(Engine engine)
{
this.engine = engine;
}
……
}
public class Engine
{
……
}
如:電話(huà)機包括一個(gè)話(huà)筒
電腦包括鍵盤(pán)、顯示器,一臺電腦可以和多個(gè)鍵盤(pán)、多個(gè)顯示器搭配,確定鍵盤(pán)和顯示器是可以和主機分開(kāi)的,主機可以選擇其他的鍵盤(pán)、顯示器組成電腦;
五、組合關(guān)系(Composition):也是整體與部分的關(guān)系,但是整體與部分不可以分開(kāi).
組合關(guān)系(Composition)也表示類(lèi)之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統一的生存期。一旦整體對象不存在,部分對象也將不存在,部分對象與整體對象之    間具有同生共死的關(guān)系。
在組合關(guān)系中,成員類(lèi)是整體類(lèi)的一部分,而且整體類(lèi)可以控制成員類(lèi)的生命周期,即成員類(lèi)的存在依賴(lài)于整體類(lèi)。在UML中,組合關(guān)系用帶實(shí)心菱形的直線(xiàn)表示。
public class Head
{
private Mouth mouth;
public Head()
{
mouth = new Mouth();
}
……
}
public class Mouth
{
……
}
如:公司和部門(mén),部門(mén)是部分,公司是整體,公司A的財務(wù)部不可能和公司B的財務(wù)部對換,就是說(shuō),公司A不能和自己的財務(wù)部分開(kāi); 人與人的心臟.
六、實(shí)現關(guān)系(Implementation):是用來(lái)規定接口和實(shí)線(xiàn)接口的類(lèi)或者構建結構的關(guān)系,接口是操作的集合,而這些操作就用于規定類(lèi)或者構建的一種服務(wù)。
接口之間也可以有與類(lèi)之間關(guān)系類(lèi)似的繼承關(guān)系和依賴(lài)關(guān)系,但是接口和類(lèi)之間還存在一種實(shí)現關(guān)系(Realization),在這種關(guān)系中,類(lèi)實(shí)現了接口,類(lèi)中的操作實(shí)現了接口中所     聲明的操作。在UML中,類(lèi)與接口之間的實(shí)現關(guān)系用帶空心三角形的虛線(xiàn)來(lái)表示。
public interface Vehicle
{
public void move();
}
public class Ship implements Vehicle
{
public void move()
{
……
}
}
public class Car implements Vehicle
{
public void move()
{
……
}
}
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
UML類(lèi)對象基本關(guān)系解析
深入淺出UML類(lèi)圖
UML中類(lèi)之間的關(guān)系
UML基礎系列:類(lèi)圖
類(lèi)與類(lèi)關(guān)系的UML圖與代碼表現 OO Java
UML類(lèi)之間的關(guān)系圖
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久