Wir sind seit vielen Jahren aktive Verfechter für und Nutzer von objekt-orientierter
Programmierung (OOP) mit LotusScript. Leider hat die Sprache an sich einige
Defizite gegenüber moderneren Vertretern ihrer Art, wie zum Beispiel das
Fehlen von Mehrfachvererbung oder zumindest Interfaces. Ein weiterer Punkt
ist, dass man Methoden nicht überladen kann, also nicht mehrere Methoden
erstellen kann, die den gleichen Namen haben und sich nur in der Anzahl
und Art ihrer Parameter unterscheiden (Parametersignatur). Bei normalen
Methoden kann man natürlich noch darauf ausweichen, dass man einfach unterschiedliche
Namen vergibt, aber der Konstruktor muss immer Public
Sub
New
heißen.
Eine Möglichkeit, den Konstruktor flexibler
zu gestalten, ist es, ihm eine Liste zu übergeben, die den oder die Parameter
enthält.
Aber gerade, wenn es um genau einen
Parameter geht, ist der Weg mit der Liste mit viel Overhead verbunden.
Eine einfache, elegante Möglichkeit ist es dann, ein Variant und eine "Objektweiche"
zu benutzen.
Als Beispiel dient der Konstruktur einer
Klasse OpenGeoDBRecord. Die Objekte dieser Klasse sollen entweder mit einer
Liste, einem Array, einem NotesDocument- oder einem NotesViewEntry-Objekt
initialisiert werden können (oder "nackt" mit Vorgabewerten):