AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Muktiple Datentypen mit "with .. as" elegant verwenden?
Thema durchsuchen
Ansicht
Themen-Optionen

Muktiple Datentypen mit "with .. as" elegant verwenden?

Ein Thema von Zacherl · begonnen am 31. Jan 2008 · letzter Beitrag vom 31. Jan 2008
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Muktiple Datentypen mit "with .. as" elegant verwe

  Alt 31. Jan 2008, 12:11
Hey,

folgendes Szenario: Ich habe mir eine ClientSocket Implementation geschrieben. Dazu habe ich erstmal eine TCustomSocket Klasse erstellt. Von dieser leite ich ein TStandardSocket, ein TSOCKS4Socket und ein TSOCKS5Socket ab.
In meinem Programm soll es nun eine Option geben, ob ein Proxy verwendet werden soll. Wie relalisiere ich Codetechnisch diesen Abschnitt möglichst elegant?

Delphi-Quellcode:
var
  Socket: TCustomSocket;
begin
  if dwProxy = 0 then
  begin
    with Socket as TStandardSocket do
    begin
      Create;
      try
        // Viel Code
      finally
        Free;
      end;
    end;
  end;
  if dwProxy = 1 then
  begin
    with Socket as TSOCKES4Socket do
    begin
      Create;
      try
        // Viel Code
      finally
        Free;
      end;
    end;
  end;
  // ...
end;
Der Code zwischen dem Create und Free bleibt ja praktisch gleich bis auf eine winzige Änderung am Anfang, weil das ProxySocket halt noch die Adresse des Proxys und dessen Port benötigt.
Gibt ja für Variablen sowas wie die Kennung als absolute. Wenn es sowas auch dymnamisch geben würde, also dass bei dwProxy = 0 Socket = absoulte SOCKS4Proxy ist.

Gruß
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: Muktiple Datentypen mit "with .. as" elegant v

  Alt 31. Jan 2008, 12:24
Kannst du nicht einfach dein Socket erzeugen und anschließend über Methoden und Eigenschaften der Basisklasse darauf zugreifen? Setzt natürlich voraus, dass so gut wie alles, was mit den Sockets gemacht werden muss, sich nur in der Implementierung und nicht im Interface unterscheidet. Das Buzzword "Factory" kommt mir da in den Kopf. Wenn einer der Sockets zusätzliche Informationen benötigt, die die anderen nicht kennen, kannst du diese ja auch als Konstruktorparameter übergeben. Also grundsätzlich, wie auch immer du es genau machst, Pseudocode:
Delphi-Quellcode:
var socket: TCustomSocket;

socket := SocketFactory.CreateSocket(proxyType);

try
// ... tue alles mit socket, was für alle gemeinsam ist
finally
  socket.Free;
end
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Muktiple Datentypen mit "with .. as" elegant v

  Alt 31. Jan 2008, 12:54
Stimmt das wäre eine Idee .. ich könnte auch einfach nur zum Createn und für den Zugriff auf die ProxyPort und ProxyType Eigenschaften nach TSOCKS5Socket typecasten und den Rest alles mit with Socket as TStandardSocket do erledigen. Auf das Einfachste kommt man meistens nicht Vielen Dank ..
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz