Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: Idee Zur Synchronisation eines Interfaces mit Klasse (mit MMX?)

  Alt 24. Jul 2018, 17:08
Erst einmal Danke für den Vorschlag.

Bezüglich der Implementierung mit MMX gibt es aber ein sehr wesentliches Hindernis: MMX manipuliert bislang ausschließlich die aktuelle Unit, was deiner Vorgabe
Zitat:
Ein Beispiel mit einer Unit für das Interface und einer für die Klasse
widersprechen würde.

Auch habe ich so meine Probleme mit der strikten 1:1 Kopplung zwischen Interface und Klasse. Das ist ja nun wirklich nicht der generelle Fall. Sowohl ist es nicht unüblich, mehrere implementierende Klassen zu haben, als auch kann eine Klasse mehrere Interfaces implementieren. Hier müsste also in jedem Fall eine gezielte Anwahl des Interfaces und der Klasse bzw. eine Selektion der Methoden/Properties der Klasse und des Interfaces als Ziel möglich sein.

Lassen wir nun noch die Multi-Unit Bedingung außen vor und sehen, was mit den Bordmitteln schon zu erreichen ist.

Für den Weg Klasse -> Interface käme wohl am ehesten die Funktion Extract Interface in Frage. Hier werden in einer Klasse die gewünschten Methoden und Properties selektiert und in ein neues Interface in der aktuellen Unit extrahiert. Das bestehende Interface müsste man vorher manuell löschen, wobei dies eventuell noch automatisierbar wäre (eine Meldung kommt ja eh schon, wenn das Interface bereits existiert). Wenn es nur um das Hinzufügen neuer Methoden zu dem Interface geht, lässt sich das auch relativ einfach per Drag'n'Drop bzw. Copy/Paste erledigen.

Für den anderen Weg Interface -> Klasse ist ja der Interface Wizard zuständig, der bereits das gewünschte Verhalten weitestgehend realisiert, wenn man das Interface auf die Klasse zieht. Bei entsprechender Einstellung geschieht das auch ohne daß der Dialog aufpoppt.

Sicher sehe ich für dein Beispiel eine ziemliche Arbeitsersparnis durch eine solche Funktionalität. Ich fürchte nur, daß der Anwendungsfall etwas zu speziell ist und sich nicht so einfach generalisieren lässt. Nichtsdestotrotz würde ich eine rege Diskussion zu diesem Thema hier sehr begrüßen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat