Zitat von
Eisenherz:
Wenn die Datenstrukturen aber komplexer werden, dann vermute ich, dass TmxJsCollection an seine Grenzen stoßen wird.
Eben nicht. TmxJsCollection kann n-dimensionale Strukturen speichern. Außerdem können die published
Properties auch wiederum Objekte sein. Diese Objekte müssen aber min von TPersistent abgeleitet sein.
Zitat von
Eisenherz:
Da wäre z.B. Polymorphie.
Nehmen wir an blkbkk würde von der Klasse TPatient die Klassen TKassenPatient und TPrivatPatient ableiten. Er könnte die Instanzen dieser Klassen nicht in einer Collection halten, da Collections nur die Instanzen einer Klasse halten können.
Aber genau das ist der klassische Anwendungsfall von Polymorphie (also der innerste Sinn der
OOP)
Die Collection verwaltet dann Klassen vom Type TPatient. Da TKassenPatient und TPrivatPatient Nachfahren
von TPatient sind gibt es hier keine Probleme. Die Klassen müssen naturlich
OOP mäßig gestylt sein.
Siehe TStrings und ff.
Zitat von
Eisenherz:
Datenkapselung:
Es können nur published-Properties automatisch gespeichert werden. Das Speichern von Daten mit einer anderen Sichtbarkeit ist dann nicht mehr ganz so einfach.
Wozu auch. Dann deklariert man die Properties eben als published. Wenn man unbedingt möchte das public properties gestreamt werden kann man noch mit DefineProperties arbeiten (überschreiben).
Zitat von
Eisenherz:
Und was macht man, wenn man aus irgendeinem Grund nicht von TCollectionItem ableiten kann?
Dann hat man wohl Pech gehabt.