Re: IMPLEMENTIERUNG: Assoziation, Aggregation, Komposition?
- From: Stefan Offermann <offermann@xxxxxxxxxxxxxxx>
- Date: Fri, 31 Aug 2007 09:49:37 +0200
Ernst Baumann schrieb:
In Java dagegen gibt es keine Pointer und deshalb kann man auch eine
Assoziation, eine Aggregation und eine Komposition _nicht_ verschieden
implementieren.
Assoziationen können ja gerichtet und ungerichtet sein.
Ungerichtet: Im frühen Stadium der Design/Enwurfsphase, da kann man über die Implementierung noch nichts sagen
Gerichtet: Klasse A ----> Klasse B heisst: A hat eine Referenz auf B, also B ist ein Feld von Klasse A.
Es gibt auch Assoziationen in beide Richtungen, d.h. A und B können gegenseitig kommunizieren (= Methoden aufrufen).
Fragen:
a) Ist für Java Assoziation, Aggregation und Komposition dasselbe?
(heißt das, dass diese Begriffe bei verschiedenen Programmiersprachen
verschiedene Bedeutung haben)
Ich persönlich würde diese Frage mit 'teils teils' beantworten. Bei der Aggragation/Komposition "leben" und "sterben" die Klassen gemeinsam.
Beispiel: Klasse A <>--- Klasse B. Wenn also ein Objekt der Klasse A "stirbt", so "stirbt" auch B, es darf also kein anderes Objekt eine weitere Referenz auf B haben. (Das ist die strenge Form: Komposition).
Hingegen kann bei Assoziationen eine weitere Referenz auf B bestehen bleiben (zB durch Klasse C), auch wenn A "stirbt".
b) Kann mir jemand einfache Beispiele geben, wo "Assoziation,
Aggregation, Komposition" wirklich unterschiedlich in Java verwendet
(implementiert) werden?
Komposition:
public class A {
private B foo = new B(); // Komposition
}
Assoziation:
public class A {
private B foo;
public A(B foo) {
this.foo = foo;
}
}
public class C {
private B bar;
public C() {
this.bar = new B();
new A(bar).doSmth();
// hier gibt es immer noch die Referenz
// auf bar (Klasse B), nicht mehr auf A!
}
}
hoffe das hilft :)
2)
Was sind uses?
Wie wird das implementiert?
Laut meinem UML 2.0 Buch wird das gar nicht implementiert. Es dient lediglich dazu, dass eine Klasse auf die Existenz einer anderen angewiesen ist, dieses muss aber nicht direkt durch implementiert werden.
Gruß,
Stefan
--
student of geoinformatic
ifgi - institute for geoinformatics
www.ifgi.de
.
- References:
- IMPLEMENTIERUNG: Assoziation, Aggregation, Komposition?
- From: Ernst Baumann
- Re: IMPLEMENTIERUNG: Assoziation, Aggregation, Komposition?
- From: Alfred
- Re: IMPLEMENTIERUNG: Assoziation, Aggregation, Komposition?
- From: Ernst Baumann
- IMPLEMENTIERUNG: Assoziation, Aggregation, Komposition?
- Prev by Date: Re: IMPLEMENTIERUNG: Assoziation, Aggregation, Komposition?
- Next by Date: Re: JSF/Facelets: Wie Servlet in faces-config ansprechen
- Previous by thread: Re: IMPLEMENTIERUNG: Assoziation, Aggregation, Komposition?
- Next by thread: Re: IMPLEMENTIERUNG: Assoziation, Aggregation, Komposition?
- Index(es):
Relevant Pages
|