Hallo,
ich bin gerade dabei ein Wiedervorlage-System in Notes zu programmieren. Es soll unter anderem sehr flexible periodische Wiedervorlagen ermöglichen (täglich, wöchentlich, monatlich, alle x Wochen / Monate).
Bei klassischer prozeduraler Herangehensweise hätte ich da vermutlich auch wenig Fragen, ich möchte das ganze aber vor allem zu eigenen Lernzwecken mal objektorientiert aufziehen. Ich habe in Grundzügen zwar schon objektorientiert gearbeitet, aber z.B. noch nie mit einem richtigen Klassenmodell und vererbten Klassen.
Meine Grundidee ist nun, eine Klasse "Wiedervorlage" (WVL) zu erstellen
so dass ich über das Objekt w dann die Methoden und Eigenschaften auf-/abrufen kann. Eine klassische Eigenschaft wäre z.B. ob die WVL aktiv ist, eine klassische und wichtige Methode gerade für Wiederkehrende Termine wäre die Methode
Die Methode soll "datumswert" auf den nächsten wiederkehrenden Termin ab "datumswert" setzen.
Meine einfachen und meine wiederkehrenden Wiedervorlagen (täglich, wöchentlich, monatlich, freie liste) haben ja nun viele Eigenschaften und Methoden gemeinsam, nur bestimmte Punkte (z.B. die Berechung des nächsten wiederkehrenden Termines) weichen voneinander ab. Deswegen war meine Idee, eine Basisklasse "WVL" zu erstellen und für die speziellen wiederkehrenden WVL Klassen zu erstellen, die von WVL erben:
Class WVL (BASISKLASSE)
Eigenschaften:
Bearbeitugnsberechtigt
Art der WVL
Wiederholen alle
Beginn am
Ende Am
Bestätigung
Aktiv/Inaktiv
etc.
Methoden
SetzeAktiv
SetzeInaktiv
SetzeErledigt
naechster(Datum)
Class WVL_Einfach as WVL
Methoden
naechster(Datum)
Class WVL_Taeglich as WVL
Methoden
naechster(Datum)
Class WVL_Monatlich as WVL
Methoden
naechster(Datum)
Mein Problem betrifft nun die Deklaration der Objekte. Ich müsste nun ja einen Code einfügen
select case doc.Art(0)
case "e": dim t as new WVL_Einfach(doc)
case "t": dim t as new WVL_Taeglich(doc)
case "m": dim t as new WVL_Monatlich(doc)
end select
Aber ich möchte außerhalb des Objektes nicht auf irgendwelche Werte des übergebenen Notes-Dokumentes (doc.Art(0)) zugreifen. Eigentlich hätte ich gerne alles mit den Aufruf
dim obWvl as new wvl(doc)
erledigt. Abhängig von der Art der Wiedervorlage soll das Objekt obWvl dann z.B. unterschiedliche rechnende Methoden "naechster" haben. Aber wie kann ich so etwas innerhalb einer Klasse dynamisch machen?
Ich hoffe ihr könnt mir bei meinem Problem halbwegs folgen.
Danke & Grüße,
Gregor