Schnittstelle = Interface
Warum definierst du nicht einfach ein Interface welches du in Interfaced Objects realisierst?
etwa so (aus dem Stehgreif jetzt):
Delphi-Quellcode:
type
ISendMessage =
interface
['
<GUID mit STRG+SHIFT+G erzeugen>']
procedure Send(
const s:
string);
end;
TTCPClass =
class(TInterfacedObject, IMyInterface)
procedure Send(
const s:
string);
end;
TUDPClass =
class(TInterfacedObject, IMyInterface)
procedure Send(
const s:
string);
end;
Jetzt kannst du diese InterfacedObjects auch als ISendMessage nutzen, weil sie das Interface ja realisieren und je nachdem WIE das Interface in den Klassen realisiert wird passiert evtl. etwas anderes.
EDIT:
wenn es ums erzeugen geht.. nimm eine Enumeration und eine Erzeuger-Funktion:
Delphi-Quellcode:
type
TConnectionType = (ctTCP, ctUDP, ctRS232, {...});
{...}
function CreateConnection(const contype: TConnectiontype): ISendMessage;
begin
case contype of
ctUDP: Result := TUDPClass.Create;
ctTCP: Result := TTCPClass.Create;
else
// evtl. Fehlermeldung
end;
end;