Domino 9 und frühere Versionen > ND6: Entwicklung

Optionale Übergabewarte in einer Funktion .... geht das?

<< < (3/4) > >>

koehlerbv:

--- Zitat ---und der Configurator um eben solche Suchen-und-Ersetzen - Dinge zu erledigen
--- Ende Zitat ---

Das hatte ich auch schon geschrieben (aber dann rechtzeitig wieder gelöscht ;-)  - der Configurator kann ja nicht austauschen, wenn sich diie Übergabeparameter ändern. Aber der Analyzer hilft schon gigantisch weiter - so ein cooles Teil ! Das Geld lohnt wirklich !

Bernhard

Axel:

--- Zitat von: koehlerbv am 21.09.04 - 20:06:58 ---...- der Configurator kann ja nicht austauschen, wenn sich diie Übergabeparameter ändern.
--- Ende Zitat ---

Stimmt. Aber man kann zumindest nach der Funktion suchen und die Änderungen manuell vornehmen. So ist die Gefahr des Vergessens geringer.



Axel


koehlerbv:
Klar, das hatte ich jetzt (beim zu schnellen Posten) übersehen, Axel: Man kann ja nach dem Auffinden von Fundstellen auch noch manuell Änderungen vornehmen. Ergo: Funktionsnamen suchen und dann den fehlenden Parameter im Configurator anhängen, oder eben den Analyzer hernehmen und mit dessen Hilfe das Vorkommen suchen und austauschen.

Es führen viele Wege nach Rom  ;)  Der des Configurators ist kürzer  ;D

Bernhard

umi:
Eine Möglichkeit wäre noch die Parameter in einer Liste zu speichern und der Funktion einfach die Liste zu übergeben. Allerdings braucht es dann einigen Aufwand, die Parameter wieder auszulesen  :P

Semeaphoros:
Das mit dem "überall ersetzen" hat natürlich besonders bei Klassen (und darum geht es ja hier) so seinen Haken: Klassen sind ja dafür geeignet, wieder verwendet zu werden, und spätestens, wenn so eine Klasse in mehreren Applikationen verwendet wird, wird es kritisch mit dem Aendern der Funktions-Signatur, und dann wird der hier vorgeschlagene Weg mit einer neuen Funktion und die Aenderung der alten Methode dahin, dass man die neue mit einem Default-Wert aufruft, schon ganz schön praktisch, dabei bleibt die Abwärtskompatibilität erhalten.

Gerade wenn es um Klassen geht, kann man natürlich auch einen anderen Weg gehen, indem man eine neue Klasse erstellt, welche von der ursprünglichen erbt, dabei ist allerdings in LS das Problem des nicht vollständig implementierten Overloadings - wie schon erwähnt - hinderlich.

Wie übblich dieses Verfahren übrigens ist, zeigt ein Blick in fast jedes beliebige API: da findet man häufig Funktionen, die am Ende des Namens ein Ex oder Extended aufweist: Nichts anderes, als eben solche Funktionen, die wie oben beschrieben mit mehr Parametern und Funktionalität neu implementiert wurden. Findet man sowohl in der Win-API wie auch in der Notes-API

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln