Domino 9 und frühere Versionen > Entwicklung
Wie kann ich eine Klasse sinnvoll aufbauen ?
TMC:
Stimmt, Thomas ::)
Allerdings macht es dann wohl nicht Sinn, mit einer abstrakten Klasse zu arbeiten, oder?
Ich will die Entscheidung, um welches Feld es sich handelt nicht der Routine überlassen, die das Feld-Objekt erstellt. Somit fällt wohl das Konstrukt
aus.
Ergo erstelle ich ein Objekt, und das Objekt muss dann je nach Feldtyp (Text, RTF, Datum etc.) entsprechendes machen und mir mit Call Field.difference den Unterschied geben.
Wie würdest Du das machen? Gleich im Konstruktor eine Select Case einbauen und dann je nach Feldtyp entsprechende Field-Text/RTF/Datum etc. - Objekte erzeugen?
animate:
das macht üblicherweise eine sog. Factory.
Das ist eine Klasse, deren einzige Aufgabe es ist, Objekte zu erzeugen.
So in der Art:
Class FieldFactory
Public Function getInstance(item As NotesItem) As HistoryField
Select Case item.Type
Case 1
Set getInstance = New RTHistoryField()
Case Else
REM your code goes here
End Select
End Function
End Class
TMC:
Danke Thomas, die Fabrik ist wohl genau das was wir hier brauchen :)
Hab aber noch ein paar Fragen:
* Wie würde ein UML-Diagramm hierzu aussehen ? (habe im Index von Oestereich's Buch [OO SW-Entwicklung] nix gefunden zu Factory)
* Was macht dann die HistoryField Klasse überhaupt noch?
animate:
du musst in das bisherige UML DIagramm nur noch die Factory-Klasse dazu malen. Sie hat keine Assoziationen zu anderen Klassen.
Die Feld-Klassen tun das Gleiche, was sie jetzt auch tun: Unterschiede vergleichen und dem Aufrufer zurückgeben.
animate:
Factory ist ein "Design Pattern".
Schlaue Leute haben bemerkt, dass manche Probleme beim SW-Design immer wieder kehren und haben dafür allgemeingültige oo Lösungen zusammengefasst - die Design Patterns.
Standardbuch dazu ist das hier: http://www.amazon.de/exec/obidos/ASIN/3827318629/ref=lpr_g_1/302-7117918-1136836
Ok, das ist die deutsche Version, Original ist in Englisch geschrieben. Ist wohl ein Buch für etwas Fortgeschrittene. Kann aber auch einem weniger Fortgeschrittenem nix schaden. Im Gegenteil.
Es gibt auch Analyse-Muster. Für immer widerkehrende Probleme, auf die du in der Analyse triffst (hier drin sind unter Anderem ein paar beschrieben: http://www.amazon.de/exec/obidos/ASIN/3827402859/qid=1089476915/sr=2-1/ref=sr_2_11_1/302-7117918-1136836)
Das habe ich glaube ich schonmal empfohlen. Das ist ein gutes Lehrbuch. Hat sogar mir bis über die Mitte des Buchs hinaus gefallen.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln