Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#17

AW: Generelle Frage zu den Indy-Komponenten

  Alt 15. Mai 2013, 14:17
Also ich finde der Hauptschwachpunkt bei Indy ist die Klassenhierarchie.
Fast alle TCP-Protokolle (FTP, HTTP, SMTP, ...) sind von TIdTcpClient abgeleitet, was nicht richtig ist.

Die Klassen, die diese Protokolle implementieren dürften nicht abgeleitet sein, sondern müssten ein bidirektionales Streamobjekt benützen.

Sobald eine TCP-Verbindung aufgebaut ist, hat sie nur noch 3 Funktionen: senden, empfangen und schliesen.
Eine geöffnete serielle Schnittstelle hat rein logisch betrachtet genau die gleichen Funktionen.
Wäre Indy besser aufgebaut, dann könnte man z.B. Ketten von Komponenten bilden:
Code:
IdSMTP <--> IdEncyptDecrypt <--> IdMultiplexer <--> IdTCPSocket
IdTelnet <--> IdEncyptDecrypt <--^
In dem Beispiel werden 2 Protokolle verschlüsselt über eine einzige TCP-Verbindung geführt.
Anstelle von TCP könnte man genausogut Bluetooth, Firewire oder Named Pipes verwenden.

Auf jeden Fall sollten der Datentransport und das Protokoll streng voneinander getrennt sein.
Statt Vererbung müsste Indy die Delegation als Prinzip verwenden.
fork me on Github
  Mit Zitat antworten Zitat