UML中的双向和单向,它们是否与其他类交互?

时间:2015-12-01 18:34:44

标签: java

所以我正在学习如何用UML建模。我目前正在学习协会。我想我知道它们是什么,但需要澄清一下。

1)由于关联是2个(或更多?)类之间的链接,因此认为类的对象将进行交互是正确的,因为对象通常与其他类交互吗?

2)在双向关联中,两个类都知道彼此之间的关系。例如,一个类Flight和一个类Plane。 Flight的角色名称为“assignedFlights”,多重性值为0 ...... *。 Plane的角色名称为“associatedFlight”,多重性值为0..1。说Flight的对象可以与Plane类有0或1个关联,而Plane对象可以与Flight类有0到无限的关联吗?与一个类“关联”真正意味着什么?他们的意思是: 例如。在平面类中,有一个名为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语言向我解释我在Java中的理解。

1 个答案:

答案 0 :(得分: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

在单向中,只有一个对象可以导航到关联的对象,反之亦然。 以下是单向的示例,您可以从Plane导航到Flight。但是从Flight对象,您无法导航到Plane

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

class Plane{

//plane related stuff here
}