Stilfrage bezüglich Beans mit Collection-Properties

stareagle

Mitglied
Hallo zusammen,

ich habe mal eine Stil-Frage. Angenommen ich habe eine Bean mit einer Collection als Property, und einer weiteren Eigenschaft, ähnlich der folgenden:

Java:
public class Item {
  
  private String name;
  private Item superItem;
  private Map<String, Item> subItems;  
}

Wie man vermuten kann, stehen
Code:
superItem
und
Code:
subItems
in Verbindung. Bei einer Instanz von
Code:
Item
, die in
Code:
subItems
eingefügt wird, soll auch
Code:
superItem
entsprechend gesetzt werden.

Nun möchte ich mich nicht darauf verlassen, dass jemand der diese Klasse benutzt, auch immer die Properties korrekt setzt. Mein Ansatz sieht folgendermaßen aus: Die Getter- und Setter-Methoden für
Code:
superItem
und
Code:
subItems] sind [code]protected
. Neben der Bean gibt es im gleichen Package eine zusätzliche Klasse
Code:
ItemManager
, die Methoden zum Manipulieren der
Code:
subItems
und
Code:
superItem
Properties enthält:

Java:
public class ItemManager {
  
  private Item managedItem;

  public ItemManager(Item managedItem) {
    this.managedItem = managedItem;
  }

  public Map<String, Item> getItems() {
    return new HashMap<String, Item>(managedItem.getItems());
  }

  public Item getItem(String name) {
    return managedItem.getItems().get(name);
  }

  public void addItem(Item item) {
    managedItem.getItems().put(item.getName(), item);
    item.setSuperItem(managedItem);
  } 

  //Weitere Methoden z.B. zum Entfernen eines Items.
}

Meiner Meinung nach ist das ein gutes Design, aber ich würde gerne mal andere Meinungen hören.

Beste Grüße

Stareagle
 

Volvagia

Top Contributor
Warum machst du das nicht direkt in der Itemklasse?
Also setSuperItem private, package protected oder public addItem, und wie gehabt wird setSuperItem beim adden gesetzt.
 

Wildcard

Top Contributor
Am einfachsten du erstellst deine Klassen mit EMF. Dort ist das dann eine sogenannte Containment Reference und EMF kümmert sich darum das superItems und subItems immer konsistent sind.
Eclipse Modeling - EMF - Home
Du brauchst dann auch kein addItem, oder removeItem, sondern die Liste kann direkt manipuliert werden und EMF stellt die Konsistenz sicher.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Stilfrage: IF-Statements Allgemeine Java-Themen 28
V gutes Lernmaterial bezüglich formatierte Ausgaben in Java Allgemeine Java-Themen 2
D Bezüglich Design meines Codes Allgemeine Java-Themen 1
J NetBeans Frage bezüglich der Scanner-Klasse Allgemeine Java-Themen 6
E Wahrscheinlichkeit bezüglich der Auswahl eines farbigen Balls Allgemeine Java-Themen 8
M Verständnisfragen bezüglich Liste Allgemeine Java-Themen 3
E Verständnisfrage bezüglich Threads Allgemeine Java-Themen 4
J Diverse Fragen bezüglich Jasper Allgemeine Java-Themen 3
W Frage bezüglich Codedesigns Allgemeine Java-Themen 4
S Strukturierungsfrage bezüglich Listeners Allgemeine Java-Themen 6
Zrebna Bitte um Empfehlungen für "zeitlose" Bücher bzgl. Backend mit Spring und Beans Allgemeine Java-Themen 25
J beans.instantiate(): Klasse kann nicht instanziiert werden Allgemeine Java-Themen 2
faetzminator verschiedene Beans, verschiedene Felder "koppeln" Allgemeine Java-Themen 3
B Frage zu Stateless Session Beans Allgemeine Java-Themen 3
J java beans property editor Allgemeine Java-Themen 3
eisioriginal Java Beans und deren Elternklasse Allgemeine Java-Themen 7
G Beans und transiente Properties Allgemeine Java-Themen 4
A Java - Enterprise Java Beans - Java Server Pages Allgemeine Java-Themen 3
S Was sind eigentlich Java Beans? Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben