2015-12-01 33 views
0

所以我正在學習如何在UML中建模。我目前正在學習關聯。我想我知道他們是什麼,但需要一些澄清。UML中的雙向和單向,他們的對象是否與其他類交互?

1)由於關聯是2個(或更多?)類之間的鏈接,因爲對象通常與其他類交互,因此認爲類的對象將進行交互是正確的嗎?

2)在雙向關聯中,兩個類都知道彼此之間的關係。例如一班飛行和一班飛機。航班的角色名稱爲'assignedFlights',重複值爲0 ... *。平面的角色名稱爲'associatedFlight',重複值爲0..1。是否正確地說對象的Flight可以與Plane類有0或1的關聯,並且Plane對象可以有0與Flight類的無限關聯?並且它是什麼意思是'關聯'與一個類?他們的意思是: E.g.在飛機艙中,有一種叫做plane();的方法,在飛行艙中有一種叫做flight();的方法。

class Flight(){ 
Plane planeObject = new Plane(); 
planeObject.plane(); 
// Only one or zero is allowed as a flight instance can only be associated with 1 or 0 planes. 
} 

class Plane{ 
Flight flightObject = new Flight(); 
Flight flightObject2 = new Flight(); 
Flight flightObjet3 = new Flight(); 
flightObject.flight(); 
flightObject2.flight(); 
flightObject3.flight(); 
//And so one as a plane can have 0 to infinite associations 
} 

3)同一類型的問題適用於單向關聯。

有人可以向我解釋在外行和術語,因爲我明白在Java中。

+0

對於q#1,而不是靜態交互?通常它是對象,但是sorta依賴於uml圖和類和設計。真的,這是你的設計,所以是靜態的呼叫,例如一個util類將被表示爲這樣。對於q#2和#3,您正在建模對象之間的交互,因此Plane對象(又名實例)與0個或更多個Flight對象/實例相關聯,並且Flight具有與Plane對象/實例的可選關聯。 – Taylor

回答

0

Java中的關聯歸結爲相關類的類成員。因此,從某種意義上說,您在示例中擁有一對多關聯。以下是我會改變它:

class Flight(){ 
Plane planeObject; 
// one plane can be associated with a flight 
} 

class Plane{ 
List<Flight> flights; 
//A plane can be associated with multiple flights 
} 

箭頭方向是指導航。這意味着,從一個對象到另一個對象的導航性。在雙向關聯中,它歸結爲兩個彼此參照的對象。在上面的示例中,Plane可以導航到flights中的任何一個,並且任何Flight都可以使用它們具有的類成員導航到關聯的Plane

單向時,只有一個對象可以導航到關聯的對象,反之亦然。 下面是一個單向的示例,其中,您可以從Flight導航到Plane。但是從Flight對象,您不能導航到Plane

class Flight(){ 
Plane planeObject; 
// one plane can be associated with a flight 
} 

class Plane{ 

//plane related stuff here 
} 
相關問題