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.