Entwickler-Ecke

Andere .NET-Sprachen - Interface und Property


XChris - So 18.06.06 23:19
Titel: Interface und Property
Hallo,

ich habe wieder ein kleines Verständisproblem ....

Ich habe eine Klasse A, diese liegt in einer DLL.
In einer zweiten DLL liegt das Interface, welches die Klasse implementieren soll. Die Klasse soll einige öffentliche lesbare Propertys erhalten:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
unit Server.Share;

interface
   uses log4net;

implementation
  type
    IServer = interface(IInterface)
        property Config: XmlContainer read;
        property ServerLogger: ILog read;
    end;
end.


Nach dem READ erwartet Delphi eine Methode. Diese will ich aber nicht öffentlich machen. Außerdem .... ein INTERFACE deklaiert ja nur, was es mal geben wird - wieso sollte ich also andere Methoden, wie sie auch immer heisen werden - bekanntgeben?

Gibt es irgend einen eleganten Weg, dass Delphi meine Propertys als Interface definiert, ohne dass ich die privaten erst in der Klasse exsitierenden Methoden hier schon "verraten" muß?

Chris

Moderiert von user profile iconChristian S.: B- durch Delphi-Tags ersetzt


mkinzler - So 18.06.06 23:23

Zitat:
Nach dem READ erwartet Delphi eine Methode. Diese will ich aber nicht öffentlich machen.
Nein du kannst auch direkt ein privates Feld angeben. Nur bei Interfaces gibt es keine Eigenschaften. Ein Interface dient ja gerade Methoden(Signaturen) vorzuschreiben


Christian S. - So 18.06.06 23:30

Hallo!

Du musst explizit die Getter und Setter angeben, welche in Delphi in Interfaces nur Methoden sein können. Andere Sprachen (z.B. C# oder Chrome) sind da in dieser Hinsicht nicht ganz so pingelig und lassen es zu, nur zu definieren, ob Lese- und/oder Schreibzugriff vorhanden sein soll - egal wie der aussieht.

Grüße
Christian


XChris - So 18.06.06 23:41

Das macht mich nicht glücklich.

Also kann man sich Propertys bei Interfaces schenken, da es keine Möglichkeit gibt, vernünftig zu kapseln.

:-(

Chris


Christian S. - Mo 19.06.06 10:47

user profile iconXChris hat folgendes geschrieben:
Also kann man sich Propertys bei Interfaces schenken, da es keine Möglichkeit gibt, vernünftig zu kapseln.
Zumindest mit Delphi ist dem so. Für die Entwicklung unter .NET kann ich eigentlich jedem nur von Delphi abraten, sofern er kein altes Projekt portieren will. Dann kann man mal drüber nachdenken.


Delphi_Apostel - Mo 19.06.06 11:36

Hallo,

die Diskussion über Delphi unter .NET hatten wir schon zu genüge (eichfach mal im forum suchen...) Jedem sofort abzuraten, Delphi unter .NET zu programmieren finde ich persönlich falsch. Jeder sollte die Vor- und Nachteile selber kennen (herausfinden). Mein Rat: einfach mal D2006 als Testversion herunterladen und ausprobieren - es lohnt sich wirklich!!!

MfG
Delphi-Apostel


Christian S. - Mo 19.06.06 11:42

user profile iconDelphi_Apostel hat folgendes geschrieben:
Mein Rat: einfach mal D2006 als Testversion herunterladen und ausprobieren - es lohnt sich wirklich!!!
Lohnt es sich wirklich, mit einer veralteten Plattform (1.1) in .NET einzusteigen? Um vorhandene Projekte weiterzuführen - okay. Aber für neue Projekte macht das einfach mal gar keinen Sinn.


XChris - Mo 19.06.06 12:26

Holla,
sehr interessant.

Also ich hab grad in einer kleinen Firma angefangen. Hier ist alles Delphi auf Win32 und man hat erkannt, umzustellen.

Ich persönlich würde am liebsten alles in DLL in C# auslagern - nach und nach ersetzen (was neu werden muß) und irgendwann in einer Nacht und Nebelaktion den Kern der Anwendung (so in nem Jahr) auf net portieren.

Was könntet ihr raten und was für Argumente sprechen für Eure Wahl? Fakt ist, bissel Angst hät ich auch - wenn ich 10 jahre Delphi gemacht habe und was läuft und ich soll plötzlich damit komplett aufhören. Aus meiner Sicht als Entwickler ist dies jedoch wohl unumgänglich.

Chris