Biesterfeld: Wie Instanz aus dem Konstruktor verwenden?

Beitrag lesen

Hej,

durch mein Kolleg soll ich ein Programm schreiben, in dem die Klassen "Artikel" und "Warenlager" vorkommen. Dabei enthält das Warenlager 1000 Artikel, aber das skurrile an der Sache ist, dass "1000 Artikel" das Attribut von "Warenlager" ist und das Warenlager im Konstruktor instanziert werden soll?

Bitte drück dich etwas deutlicher aus, sollen die Artikel oder das Warenlager selber innerhalb des Konstruktors instanziert werden? Sollen vielleicht die Artikel selber auf das Warenlager referenzieren?

  
public class Artikel {  
  final private  Warenlager w;  
  
  public Artikel( Warenlager w ) {  
    this.w = w;  
  }  
}

Oder ist vielleicht gar nicht der Konstruktor gemeint sondern ein Singleton-Pattern?

  
public final class Warenlager{  
  
  private Warenlager w;  
  private Collection<Artikel> artikel;  
  
  /**  
   * nicht instanzierbar von außen  
   */  
  private Warenlager(){  
    this.artikel = new ...<Artikel>();  
  };  
  
  /**  
   * Hole Warenlager Instanz. In einer VM kann immer nur  
   * höchstens ein Warenlager liegen  
   */  
  public static Warenlager warenlager() {  
    if( this.w == null ) {  
      this.w = new Warenlager();  
    }  
    return this.w;  
  }  
}

public Warenlager()   {
  Warenlager warenlager = new Warenlager();
}

  
Tja, damit hast du zwar die Aufgabe wörtlich erfüllt, aber beim Aufruf würde ich den maximalen Heapspace etwas hochsetzen ,-)  
  
Beste Grüße  
Biesterfeld

-- 
Art.1: Et es wie et es  
Art.2: Et kütt wie et kütt  
Art.3: Et hätt noch immer jot jejange  
[Das Kölsche Grundgesetz](http://isamhaddad.de/stuff/kgg.pdf)