# Bidirektionale Assoziazion in Java realisieren?



## mschill (16. Dez 2003)

Hallo
Obwohl ich eigentlich schon relativ lange Java programmiere, ist mir erst vor kurzem das Problem aufgefallen, das es nicht gerade einfach ist, sauber eine bidirektionale Assoziazion zu programmieren. Wir bringt man das am besten fertig, ohne Redundanzen zu schaffen?


----------



## mariopetr (16. Dez 2003)

1..0:1..0 (komposition,aggregation)

```
public class A()
{
  B b;
}

public class B()
{
  A a;
}

..
  A a=new A();
  B b=new B();
  a.b=b;
  b.a=a;
..
```
n:1..0,n:m das selbe, nur mit collections


----------



## mschill (16. Dez 2003)

Wie ist das bei einer 1 zu 0...* Assoziation? Da hat man das Problem, dass wenn man bei dem Objekt, das ein einzelnes Attribut hat und dieses ändert, nicht automatisch die Collection des anderen geändert wird. 

Geschweige denn bei 0...* zu 0...* Assoziazionen.


----------



## mariopetr (16. Dez 2003)

1:0..* == 1:n
0..*:0..*==n:m
die spezialform 1..* laest sich nur durch logik abdecken
wie vorher erwaehnt, das selbe mit collections

n:m 

```
public class A() 
{ 
  Collection bList; 
} 
 
public class B() 
{ 
  Collection aList; 
} 
 
.. 
  A a=new A(); 
  B b=new B(); 
  a.bList.add(b); 
  b.aList.add(a); 
..
```


----------

