hilfe informatik beleg

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • "Hafner" schrieb:


    Hmm, zunächst eine grundsätliche Frage: Warum machst du das nicht über den Konstruktor? Wenn du das nicht möchtest, ist dann die Methode statisch (sollte eigentlich)?


    Das Problem war das ich eine Methode brauche um die Lagerelemente zu erstellen die dann im Listeelement, welches alle erstellten Lager beinhaltet, zusammengefasst werden. Allerdings wäre es ja (mal wieder) doppelt gemoppelt da eine Methode einzusetzen, die nach dem Erzeugen eines Lagers, einen Rückgabewert vom Typ Lager besitzt und dann über eine Methode den Rückgabewert auf das Listenelement zuzuweisen, das ja sowieso in der Containerklasse ist.
    Keine Ahnung warum ich so verwinkelt gedacht hab. Aber danke das du mich drauf hingewiesen hast, sonst hätte ich das womöglich noch so gemacht :shock:

    Ich kann das ganze ja so in der Art gestallten

    Quellcode

    1. public void createLager(Lagerform, Lagerplätze, Kapazität)
    2. {
    3. wenn Festlager
    4. {
    5. Liste.add(new Festlager(.....));
    6. }
    7. wenn Chaoslager
    8. {
    9. Liste.add(new Chaoslager(.....));
    10. }
    11. }
    Alles anzeigen



    tja manchmal sieht man den wald vor lauter bäumen nicht...... :roll:

    in diesem sinne eine gute nacht
  • Freut mich, dass ich helfen konnte.
    Was hältst du den davon:

    Quellcode

    1. private LinkedList<Lager> liste = new LinkedList<Lager>();
    2. public void addLager(Lager lager) {
    3. liste.add(lager);
    4. }


    und aufrufen dann z.B. so:

    Quellcode

    1. addLager(new Festlager(lagerplaetze, kapazitaet));


    @ doppelt gemoppelt
    Das ist normal, mit zunehmender Erfahrung wird sowas weniger.
  • Na zunächst überlegst du mal auf WELCHE Ereignisse du mit WELCHEM ConcreteObserver (wenn man nur einen ConcreteObserver implementiert könnte man ja auch gleich alles in der Observer-Klasse unterbringen) WIE reagieren willst.

    Das WAS (die Lager) hast du ja schon herausgefunden. Im Prinzip kannst du ne große Tabelle machen. Sobald du die hast, würd ich mir da vom Tutor/Betreuer Meinungen und Kritik einholen. Sowas ist auch immer ein guter Platzfüller in einer eventuellen Schriftlichen Ausarbeitung.

    Im Übrigen solltest du dir deine Dokumente immer aufheben. Ein späteres detailiertes Klassendiagramm mag zwar alle Infos von dem einfachen Klassendiagramm enthalten, aber das Einfache ist für die Analyse und das Detailierte für den Entwurf. :D
  • Also um das genaue Prinzip, was wie beobachtet wird, geht es mir jetzt hier bei dem Observer-Pattern garnicht (da muss ich sowieso nochmal genau meinen Tutor fragen).
    Worauf meine Frage eigentlich gezielt hat ist, wie ich die ganze Observer-Struktur ordentlich in "UML-Schreibweise" bekomme das das ganze dann auch programmiertechnisch umsetzbar ist und dann auch so funktioniert, das wenn sich was im Lager ändert dann automatisch die angemeldeten Beobachter benachrichtigt und aufgefordert werden.
    Und da denke ich stimmt das noch nich so ganz wie ich das auf dem letzten Diagramm modeliert habe?


    Das "weniger detailierte" Diagramm behalte ich natürlich weiterhin. Hab mir
    auch die alten Diagramme gespeichert, die ich nach jedem Umformschritt
    wieder verworfen habe.

    Direkt schriftlich Ausarbeiten soll wir das nicht, auch kein Pflichtenheft. Zum Beleg soll lediglich die UML Dokumentation und die von javadoc generierte Dokumentation (natürlich mit Kommentaren), sowie das projekt, abgegeben werden .
  • "Hafner" schrieb:

    Hier eine Möglichkeit. Dabei verwende ich die bereits existierenden Java-Klassen für Observer. In der Analyse ist man normalerweise nicht so speziefisch, aber es hilft - so denke ich - beim Verständnis.


    Jupp das hat mir sehr weitergeholfen! Danke.
    Ich bin am überlegen ob meine Container direkt von einer existierenden Java-Klasse erben lasse (z.B. java.util.AbstractList). Die stellen ja schon den großteil der Methoden bereit die ich für meine Containerklassen sowieso brauche.

    Ich mache jetzt erstmal weiter und überleg mir mit meiner Gruppe nun was wir nun genau für Attribute und Methoden benötige.
    Wenn es irgendwelche Probleme gibt melde ich mich nochmal.

    Ansonsten GROßES DANKE!!!!!!!!!!!

    Ohne euch sähen würden wir ganz schön alt aussehen
  • Warum speicherst du die Lagerelemente nicht direkt im Lager?
    Wenn du dann noch die Lager direkt in der Lagerverwaltung speicherst kannst du dir die Containerklassen sparen. Die Aggregationen werden als Code eh immer von Listen/Arrays/Maps/Sets umgesetzt. Diese Klassen existieren aber schon in Java und benötigen keinen extra implementierten Container.

    Momentan ist es so, dass du in der Lagerverwaltung eine Containerklasse speicherst, die alle Funktionen einer Liste hat. In der Containerklasse bildest du alle Funktionen der Liste 1 zu 1 ab und speicherst in ihr alle Lager. Warum nimmst du dann nicht gleich die Liste in der Lagerverwaltung? Im Prinzip die selbe Struktur nur mit weniger Code und mehr Übersicht.
  • Hi,
    Der Grund für die Einführung der Container war eigentlich nur der, das ich über die ID der jeweiligen Elemente auf diese zugreifen will. Normal ist es ja bei einer ArrayList so das man nur über die Position in der Liste an die entsprechenden Objekte rankommt. Das will ich aber nicht bzw muss ich über die Objektseitige Identifierzierung an die Objekte kommen. Deshalb wollte ich eine Methode schreiben die die IDs der Objekte vergleicht, also alle durchläuft bis er sie gefunden oder nicht gefunden hat und dann mittels Return zurückgibt.
  • hallo,
    also das ganze musste ich doch anders machen als hier durchgesprochen aber ich hab es allein hinbekommen.
    jetzt stehe ich vor dem problem, das ich die dokumentation machen will aber javadoc macht da immer ein fehler, im eclipse steht folgendes da:

    Generating C:\Dokumente und Einstellungen\Hummel\Desktop\info beleg\javadoc\class-use\Firma.html...
    java.lang.NullPointerException
    at com.sun.tools.doclets.formats.html.PackageUseWriter.generatePackageUse(PackageUseWriter.java:180)
    at com.sun.tools.doclets.formats.html.PackageUseWriter.generatePackageList(PackageUseWriter.java:124)
    at com.sun.tools.doclets.formats.html.PackageUseWriter.generatePackageUse(PackageUseWriter.java:110)
    at com.sun.tools.doclets.formats.html.PackageUseWriter.generatePackageUseFile(PackageUseWriter.java:99)
    at com.sun.tools.doclets.formats.html.PackageUseWriter.generate(PackageUseWriter.java:78)
    at com.sun.tools.doclets.formats.html.ClassUseWriter.generate(ClassUseWriter.java:116)Generating C:\Dokumente und Einstellungen\Hummel\Desktop\info beleg\javadoc\class-use\Produkt.html...


    und

    Generating C:\Dokumente und Einstellungen\Hummel\Desktop\info beleg\javadoc\Lagerorganisation/\package-use.html...

    at com.sun.tools.doclets.formats.html.HtmlDoclet.generateOtherFiles(HtmlDoclet.java:92)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:122)
    at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:64)
    at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
    at com.sun.tools.doclets.standard.Standard.start(Standard.java:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:215)
    at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:91)
    at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
    at com.sun.tools.javadoc.Start.begin(Start.java:128)
    at com.sun.tools.javadoc.Main.execute(Main.java:41)
    at com.sun.tools.javadoc.Main.main(Main.java:31)


    woran liegt das denn? an nem fehler im javadoc? oder hab ich einen fehler gemacht? die lagerverwaltung läuft übrigens in meiner testumgebung super!