Re: Klasse optimieren

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Sven Schneider (stuff_at_netzsynapse.de)
Date: 08/27/04


Date: Fri, 27 Aug 2004 01:10:24 -0700

Giovanni Rena wrote:

> Hallo,
>
> SourceData
> {
> // Elementvariablen
> ArrayList Tourenplan = new ArrayList();
> ArrayList Anlagen = new ArrayList();
> ...
>
> // Elementmethoden
> public int ReadFile();
> ...
>
> // Weitere Klassen
> private class Plan
> private class TourFahrt
> private class TourenplanAnlage
> ...
> }
>
>
> Beschreibung:
> So sieht ein Teil meines Projektes aus. Ich lese mit er methode
> ReadFile() eine XML Datei ein.
>
> In ReadFile() erstelle ich dann z. b. ein Objekt vom Typ Plan,
> TourFahrt... und packe es
> in richtiger Reihenfolge in das Array Tourenplan.
>
> Anschließend lese ich weietere Datei ein, und erstell auch für diese
> ein Objekt jeweils vom Typ
> AnlageAnlage, AnlageNutzer, AnlageMessung... und packe auch dies in
> richtiger Reichenfolge
> in das Array Anlagen hinein!
>
> Problem:
> So, nun muß ich von Außen an die Daten in der ArrayList Tourenplan
> und Alagen wieder ran kommen!
>
> Lösungen:
> 1. Hab mir überlegt, dass ich mir Get-Methoden mache, die einfach
> solch ein Objekt zurückliefern
> also, anstatt mir ein einzelnes Datum zu holen, hole ich mir aus dem
> Hauptprogramm das ganze Objekt.
> Das Problem dabei: das Objekt ist Doppelt vorhanden und braucht also
> doppel Speicher.

Wenn du die Daten von einem anderen Programm / einer anderen Klasse aus
aufrufen willst, stellt sich noch die Frage, ob du die Daten
ausschließlich in der externen Klasse brauchst.
Wenn du über eine Methode deine Daten lädst, kannst du sie als
Rückgabewert verwenden. In ReadFile könntest du alles einlesen, in ein
Array schreiben, dieses Array dann als return zurückgeben, und du hast
es genau in der Klasse, in der du es brauchst...
Da dann deine ReadFile Klasse nicht mehr gebraucht wird, kannst du die
Referenz löschen, das Objekt braucht keinen Speicher mehr, und du hast
keine Daten doppelt...

> 2. Ich mache ungefähr 120 Get/Set Methoden und diese greifen jeweils
> auf die einzelnen Daten der
> Klassen zu.

Das ist weder sinnvoll noch praktikabel imho...

> NOCH WAS: die einzelnen Klassen wie Plan, TourFahrt, TourenplanAnlage
> enthalten bereits
> alle Get/Set-Methoden. D. h. eigentlich müsste ich ja nur ein Objekt
> vom Typ Plan, TourFahrt...
> haben, und könnte mir schon die einzelnen Daten holen. Da wären wir
> aber wieder - beim
> doppelten Speicherbedarf.

Diese Methoden kannst du ja dann verwenden, wenn du die Objekte aus dem
Array wieder aufrufst...

> Was meint ihr? Lösung 2. wäre auf jeden Fall besser, wenn auch
> aufwendiger. Oder gibts noch ne bessere Lösung?

Ich hoffe mal, ich habe dein Problem richtig verstanden

> Gruß Giovanni

Gruß,

Sven



Relevant Pages

  • Re: read file contents to a variable
    ... > Is there a reason the filefunction makes an array? ... The readfile() ... > function is even more strange, it dumps the contents to the screen but ...
    (alt.php)
  • read file contents to a variable
    ... Is there a reason the filefunction makes an array? ... The readfile() ... function is even more strange, it dumps the contents to the screen but ...
    (alt.php)
  • Re: Get/Put read/write efficiency
    ... use CopyMemory to copy the section of the array to a smaller array and ... switch from Get/Put to the ReadFile and WriteFile API calls so you can ...
    (microsoft.public.vb.general.discussion)