Autor Beitrag
XChris
Hält's aus hier
Beiträge: 11



BeitragVerfasst: So 18.06.06 23:19 
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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: 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

_________________
Markus Kinzler.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
XChris Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Delphi_Apostel
Hält's aus hier
Beiträge: 5



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
XChris Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: 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