Entwickler-Ecke

Off Topic - UML-Umsetzung in Java


LonghornUser - So 01.04.12 15:45
Titel: UML-Umsetzung in Java
Hallo Leute,

ich baue mir gerade eine kleine Übersicht zum Thema UML zusammen und bin bei 2 Konstrukten stutzig geworden, wie man die bspw. in Java umsetzen würde. Vielleicht habt ihr ja eine Idee?

  1. Multiplizitäten (Kardinalitäten) abseits von 1 und 0..*: Wie programmiert man bspw. 1..* oder 2..4?
  2. Wie programmiert man eine Komposition (schwarze Raute) in Java?

Danke!

Ciao LHUser


Regan - So 01.04.12 16:32

Hallo,

als fertiges Framework könnte dir Hibernate [http://www.hibernate.org/] behilflich sein. Das übernimmt auch die Speicherung zum Beispiel auf einem Server. Allerdings ist dort 2..4 AFAIK nicht möglich und auch die Komposition wird erst beim Speichern auffällig.
Natürlich kannst du das auch selbst programmieren, sprich bei Komposition im Konstruktor z. B. eine Referenz auf das Objekt hinzufügen. Oder bei 2..4 eine List<T> bauen und statt setList(List<T>) lieber ein addToList und removeFromList machen, wo du dann die Anzahl prüfen kannst.

Viele Grüße
Regan


Kha - So 01.04.12 18:13

user profile iconRegan: Was hat Klassenmodellierung mit Persistenz zu tun? Aber es stimmt auf jeden Fall, dass sich erweiterte Constraints wie 2..4 nur direkt im Java-Code ausdrücken lassen und Komposition nicht einmal wirklich da (im Gegensatz zu Sprachen ohne GC).


LonghornUser - So 01.04.12 18:30

Bei 2..4 könnte man doch im Konstruktor eine Liste übergeben und diese im Konstruktor auf die korrekte size() überprüfen. Die Frage ist nur, wie ich im negativen Fall ein Objekt in dessen Konstruktor gleich wieder entsorge. Geht das überhaupt?


Regan - So 01.04.12 18:56

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRegan: Was hat Klassenmodellierung mit Persistenz zu tun?

Das mir die Persistenz gleich die Constraints mit prüft und auch wieder läd und ich da weniger im Java-Code umsetzen muss/darf/soll. Ich wollte das hier bloß mit anbringen, da solche Strukturen und Abhängigkeiten häufiger gespeichert werden. Das ist hier leider nicht der Fall, hätte aber durchaus der nächste Schritt sein können.


Kha - So 01.04.12 21:27

user profile iconLonghornUser hat folgendes geschrieben Zum zitierten Posting springen:
Die Frage ist nur, wie ich im negativen Fall ein Objekt in dessen Konstruktor gleich wieder entsorge.
Um das Entsorgen solltest du dir in Java überhaupt keine Gedanken machen. Jedenfalls kannst du mit einer Exception aus dem Konstruktor heraus erreichen, dass auf die ungültige Instanz nicht zugegriffen werden kann.