nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Objectpascal mit FPC, Funktion erstell t Objekt und gibt dieses zurück

Von: Michael Fuchs (mikescu@gmx.de) [Profil]
Datum: 05.08.2008 12:44
Message-ID: <6fqp9aFct96cU1@mid.individual.net>
Newsgroup: de.comp.lang.pascal
Hallo,

ich überlege gerade, welches die beste Methode ist Objekte aus
Prozeduren/Funktionen zurückzugeben. Passieren soll folgendes:
Eine Funktion/Prozedur liest einen Datensatz aus einer Datenbank und
mappt die Daten in ein Objekt welches sie zurückgibt. Zwei mögliche
Lösungsansätze habe ich dafür:

type
TMyObject = class
private
_a: Integer;
public
property A: Integer read _a write _a;
end;

function GetObject: TMyObject;
var
resultObject: TMyObject;
begin
resultObject:= TMyObject.Create;
// Quellcode der das Objekt mit Daten füllt
Result:= resultObject;
end;

procedure GetObject(resultObject: TMyObject);
begin
// Quellcode der das Objekt mit Daten füllt
end;

Die Funktion erstellt das Objekt und gibt es als Rückgabewert nach
außen. Wäre meine bevorzugte Lösung, dann kann ich auch falls ein
Datensatz gefunden wurde auch einfach nil zurückgeben. Wichtig ist dann
bloss, dass der Quellcode, der die Funktion aufruft, das Objekt auch
wieder freigibt wenn er fertig ist. Auch kein Problem, es seid denn,
dass es da irgendwelche Einschränkungen gibt, weil dieses Objekt ja in
der Funktion erzeugt wurde. Ist dem so?

Alternativ müsste ich dann die Variante mit der Prozedur wählen. Also
Objekt erzeugen, als Parameter an die Prozedure und die füllt das Ding
dann nur noch mit Daten. Aber was mache ich dann, wenn ich später mal
eine Liste zurückgeben muss, dann muss ich die Objekte wieder innerhalb
der Funktion erzeugen. Gefällt mir nicht so recht.

Spricht etwas gegen die Variante 'Funktion erzeugt Objekt, gibt es nach
außen und der "äußere" Code kümmert sich um das
Vernichten'?


mfg
Micha

--
Meine Wanderungen durch Realität und Cyberspace

auf --> http://www.michael-fuchs.net <--

[ Auf dieses Posting antworten ]

Antworten