Autor Beitrag
LonghornUser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: So 01.04.12 15:45 
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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: So 01.04.12 16:32 
Hallo,

als fertiges Framework könnte dir Hibernate 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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.

_________________
>λ=