![]() |
Interface aus bestehenden Klassen erstellen
Hi in die Runde,
ich bin schon seit einiger Zeit Delphi entwickler und möchste meine Fähigkeiten in der Programmierung verbessern und erweitern. Lese aktuell die Bücher von Nick Hodges, kann ich auf diesem weg nur empfehlen. Zukünfitg will ich meine Enwticklungen immer mit unit Tests ausstatten. Dafür muss ich zukünftig zwangsläufig mit interfaces arbeiten. Mein erster Schritt den ich jeztz machen wollte, war es ein Interface für das laden von lokalen Einstellungen zu erstellen. Also sowas wie:
Delphi-Quellcode:
Da ich aber eigentlich so gut wie immer die Delphi eigenen klassen verwende, sowas wie Tinifile oder TRegistry, kann ich diese ja nicht von einem IInterfacedObject ableiten. WIe stell ich das an, für bestehende Klassen ein Interface zu erstellen? Oder muss ich immer eine eigene KLassenableitung erstellen? Ich hoffe die Frage ist nicht zu Kindergarten, aber meine bisherige Websuche hat mich irgenwie nicht wirklich schlauer gemacht:oops:
unit LocalSettingsInterface;
interface type ILocalSetttings = interface ['{BAAEC9A9-5D37-48C7-9A60-3AABE21845B7}'] procedure writeString(const value: string); function readString: string; procedure writeInteger(value: Integer); function readInteger: Integer; end; implementation end. Gruß PJM |
AW: Interface aus bestehenden Klassen erstellen
Zitat:
Zitat:
![]() |
AW: Interface aus bestehenden Klassen erstellen
"Eine" Klasse kann mehrere Interfaces implementieren.
mit bissl gefummel geht es sogar, wenn das Interfaces mit gleichnamigen Methoden sind. (es ist möglich quasi den Methodenname vom Interface in der Klasse anders zu bennennen, falls es konflikte gibt)
Delphi-Quellcode:
class TYourClass = class(TYourBase, IInterface1, IInterface2, ...)
Man kann Interfaces auch voneinander ableiten, also z.B. die zweite Version eines Interfaces (mit neuen Methoden), aber wo die Alten auch drin sind, |
AW: Interface aus bestehenden Klassen erstellen
Zitat:
Hey Himitsu, danke für deine Antwort, dann müsste ich mir aber immer wie in der Frage schon dangedeutet eine eigene Klasse ableiten. Und dann logischerweise auch die Interface deklaration mit der ageleiteten Klasse und nicht der Basisklasse machen. Das würde ich gern umgehen :-) Danke aber für den Code, jedes bisschen hilft beim lernen. |
AW: Interface aus bestehenden Klassen erstellen
Zitat:
Hey Dumuzeuch, das ist ja echt schon ewig her. Da sieht man mal was es alles aufzuholen gilt :oops: Deine Lösung gefällt mir gut, ich versuch mal mein Glück. Danke! |
AW: Interface aus bestehenden Klassen erstellen
Jupp, ableiten.
Dann bleibt nur noch der Wrapper drumrum. Viele Klassen haben zwar bereits ein "Interface" drin (z.B. alles was von TPersistent/TComponent abgeleitet ist), aber das, was du wissen willst, würde dort wohl fehlen. |
AW: Interface aus bestehenden Klassen erstellen
Zitat:
|
AW: Interface aus bestehenden Klassen erstellen
Hallo,
ja, es ist nicht daran gekoppelt. Aber wenn man Dinge Mocken können will oder so, dann ist es sicher praktischer wenn sich die Unit Tests auf ein Interface beziehen. Schlage vor, du liest mal Nick Hodges' Bücher, dann merkst du auf was der OP hinaus will... Grüße TurboMagic |
AW: Interface aus bestehenden Klassen erstellen
Zitat:
Zitat:
![]() |
AW: Interface aus bestehenden Klassen erstellen
Hilfreich wäre es aber auch, wenn die IDE eine Liste aller Klassen im Projekt, die ein bestimmtes Interface implementieren, ausspucken könnte
und von dort könnte man gleich zur passenden Klassendeklaration springen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz