Forum: Object-Pascal / Delphi-Language
Delphi
by choose,
16. Dez 2003
Leider hast Du nach Deiner Ausführung lediglich zwei Alternativen (Schnittmenge vs. Vereinigungsmenge) dargestellt, nicht aber deine "ganz besteimmten Anforderungen". Welche der Strategien möchtest Du nun tatsächlich verfolgen, wo liegt der Schwerpunkt?
Das ist eine lediglich innerhalb der Klasse verwendete Information. Sie wird nicht über eine Klasse hinaus verwendet, sondern dient...
Forum: Object-Pascal / Delphi-Language
Delphi
by choose,
16. Dez 2003
So, erst einmal 'nen neuen Kaffe und nun geht's weiter ;)
Bei der Erstellung eines InputStreams wäre zwar ein Wrapping denkbar in der Form
myStream:= WrappingInputStream(AnOutputStream);
ähnlich, wie es beim FiFoStream geschehen ist, in diesem Fall müsste aber jeder OutputStream intern einen Puffer vorhalten, bzw ein Puffer-Stream zwischengeschaltet werden, was ich für wenig elegant halte.
...
Forum: Object-Pascal / Delphi-Language
Delphi
by choose,
16. Dez 2003
Dann also kein neuer Thread, aber ordentlich lange Beiträge ;)
Das sind Möglichkeiten, das Decorator-Pattern anzuwenden. Beides geeignet, allerdings stimme ich 1) nicht zu. Schließlich sind FileInputStream, SocketOutputStream oder ArrayInputStream die jeweiligen Enden dieser Ketten und benötigen deshalb keine weiteren Referenzen.
Innerhalb einer Hierarchie sollte es deswegen meiner Meinung...
Forum: Object-Pascal / Delphi-Language
Delphi
by choose,
15. Dez 2003
Hallo Hagen,
nach Deinen Schilderungen und dem wenigen, was ich über dieses Thema weiß, würde ich ebenfalls für die zweite Variante, der von (teilweise) gepufferten Streams, stimmen. Das Kaskadieren von Operationen kann dann sehr elegant über Threads nach dem Producer-Consumer-Pattern umgesetzt werden, so dass einerseits die Puffergröße minimiert und andererseits die Übersicht gesteigert...
Forum: Object-Pascal / Delphi-Language
Delphi
by choose,
15. Dez 2003
Hallo Hagen,
mich würde interessieren, wie Du Dir das Mapping vorstellst, ohne bei einer "kleinsten Schnittmenge" wie "Pointer und Größe" zu enden... :gruebel:
Darüber hinaus könnten die abstrakten Datenkontainer zustandsbehaftet sein (zB Streams, die kein Seeking unterstützen), so dass auch ein schlichter Pointer nicht immer funktionieren könnte, ohne dass zunächst eine Kopie der Daten vom...
Forum: Object-Pascal / Delphi-Language
Delphi
by choose,
15. Dez 2003
Hallo Kamil, netter Beitrag von Dir (auch die Bezeichnungen der Typen und Variablen gefallen mir gut ;)). Widersprechen muss ich Dir in diesem Punkt
Der Aufruf von Assigned prüft lediglich, ob eine Variable ungleich nil ist, so dass "verlorene Referenzen" mit dieser Funktion nicht aufgespürt werden können. Auch kann mit dieser schlichten Überprüfung nicht unterschieden werden, ob an einer...
Forum: Object-Pascal / Delphi-Language
Delphi
by choose,
15. Dez 2003
Hallo mirage228,
wenn ich Deine Ausführungen richtig verstanden habe, liegt die Ursache des Problems in der heterogenen Verwendung von Klassen(-Objekten) und (Objekt-)Interfaces.
Bedingt durch das in Delphi verwendete Interface-Konzept wird bei der Arbeit mit Interfaces eine implizite Referenzzählung vorgenommen.
Der folgende Code
var
myObject: IMyInterface
begin
myObject:=...