Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: flaite am 07.08.07 - 17:13:00

Titel: Lotus Script Klassen wiederverwendbarer programmieren
Beitrag von: flaite am 07.08.07 - 17:13:00
Hi,

ich bin z.Zt. in einem Projekt, das stark LotusScript Klassen verwendet. Dabei war die Wiederverwendbarkeit geringer als erwartet oder als sie sein könnte. 
Ich glaub, ich hab was herausgefunden. Die Leute packen in ihre Klassen zu viel STATE.
State sind die Instanzvariablen.

Das aus der Klasse gebildetet Objekt zog sich Informationen aus einem anderen Dokument und generierte daraus eine Email. 
Aber was ist, wenn im nächsten Projekt auch Emails generiert werden, aber die Informationen aus 2 Dokumenten benötigt werden?

Ich glaub man sollte im new() der LotusScript Klasse nicht so großzügig Instanzvariablen initialisieren. 
Schliesslich kann man ja die benötigten Objekte in der Parameterliste der einzelnen Methoden übergeben.
Das macht die Parameterlisten der Methoden zwar länger (und die von new kürzer), aber eben die Klasse auch flexibler.

Beispiel statt->
Code
Class EMailTemplate

	Private i_docTemplate As NotesDocument		'// the template document
	
        public sub new (docTemplate as NotesDocument) 
          set i_docTemplate = docTemplate
        end sub 
        
       public function doSomeAction () as integer
            doSomeAction = false
            some stuff

          end function

end class


Code
Class EMailTemplate

	
	
        public sub new () 
          
        end sub 
        
       public function doSomeAction (docTemplate as NotesDocument) as integer
            doSomeAction = false
            some stuff

          end function

end class


Dieser weniger-Status-in-Objekten-Stil ist auch näher an den Ideen von funktionaler Programmierung, bei der jede Funktion für die selben Parameter-Werte immer das gleiche Ergebnis zurückliefert.

Gruß Axel