Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#11

Re: Vorteile eines Records gegenüber einer eigenen Klasse?

  Alt 4. Feb 2005, 00:26
Zitat von Binärbaum:
Records sollte man verwenden, wenn es darum geht, schon strukturierte Daten zu speichern (z.B. Adressdaten). Da braucht man dann auch keine Klassen. Klassen sind aber dann nützlich, wenn man für die Daten bestimmte Funktionen/ Prozeduren braucht, die immer wieder auf diese Daten zugreifen. Da sind Klassen sinnvoller als Records.

MfG
Binärbaum

//Edit: immer diese Rechtschreibfehler
Gerade STRUKTURIERTE Informationen haben in records nichts zu suchen.
Strukturiere Infos lassen sich doch viel schöner, flexiber und performanter in Instanzen von Klassen abbilden, die Felder von Instanzen einer Klasse besitzen.
Wenn man nicht gerade mit einem Pointer auf einen Vorschlaghammer (PSledgeHammer = ^TSledgeHammer; ) alle wild umherirrenden Pointer auf Records zusammenhaut, muss man in Kauf nehmen dass sie STÄNDIG KOPIERT werden!
Primitive Typen machen nur Sinn, wenn sie unter einer gewissen Größe bleiben (ca. 10-20 Bytes). Ansonsten verliert man beim Kopieren zuviel Performance gegenüber Objektzeigern (4 Bytes). Zum Bsp: Niemand wird eine Klasse verwenden um einen Int zu benutzen.
Records haben keine Konstruktoren, Destruktoren, Methoden, Properties (sind zwar auch Methoden...) das alleine macht sie schon komplett unnütz um strukturierte Information zu halten.
Die Tatsache, dass man sie nicht voneinander ableiten kann sollte sie komplett verbannen.

Sicher haben Records ihre Daseinsberechtigung, wie will man diese ganzen ekligen Win32 Funktionen ohne Records verwenden?
Das heißt aber nur, dass man diese Zugriffe in Klassen verpacken kann. Records oder API-Aufrufe haben IMHO in der eigentlichen Anwendung nix zu suchen.

Ich persönlich gehe soweit, dass ich Arrays in 99% aller Fälle durch Listen/Collections ersetze. Die kann man schließlich ableiten, wachsen/schrumpfen lassen und mit Methoden, Events und Properties schmücken. Arrays könen nix außer Elemente eines Types zu halten...

Das waren nur meine 2 Cents, zum Thema Vergewaltigung einer OOP-Sprache mit unflexiblen mittelalterlichen Herangehensweisen.
Vielleicht bin ich auch einfach zu sehr .Net-versaut...
  Mit Zitat antworten Zitat