I
insomnio
Gast
Hi all!
in meiner App möchte ich einen grossen Teil generisch halten. Momentan habe ich ein Problem mit dem Model. Jeder Datensatz soll observable sein, habe deshalb eine Klasse ObservableObject, welche Listeners hält und diese gegebenenfalls updated. Weiter habe ich Datensätze, welche von dieser Klasse erben, die Klasse Record (abstract). Nun gibt es Records die aus der Datenbank kommen, meine DBRecord s. Für die View schreibe ich mir einige Helper klassen, damit ich mir einigen aufwand ersparen kann. Diese Views (Tables, Trees, Lists etc.) arbeiten jeweils mit Controllern die Records enthalten. Nun habe ich beim Tree so meine Probleme. Möchte ich zum Beispiel eine Ordner oder Kategoriestruktur abbilden, so kann dies ja per reflection gemacht werden (jeder Record hat eine Referenz auf seinen Parent etc.) Also muss jeder Record den ich im Tree vom Controller erhalte, ein ReflectableRecord sein. Wenn ich jetzt aber eine Klasse ReflectableRecord definiere die von Record erbt, müsste ich auch eine Klasse schreiben, welche ReflectableDBRecord heisst und von DBRecord erbt. Dies ist mir jedoch zu mühsam. ich könnte natürlich auch einfach ein Interface machen, Reflectable, und dann meine implementierungen von Record bzw. DBRecord auch dieses Interface implementieren lassen. Dann müsste ich im Tree jedoch bei jedem Record ein Casting oder instanceof machen, was mir einfach extrem abwägig klingt, denn wenn das dann so weiter geht, wird irgendwann zu umständlich, und irgendwie habe ich das gefühl, der OO gedanke geht so verloren. Wie macht ihr solche Sachen?
TIA
grüsse gegel
in meiner App möchte ich einen grossen Teil generisch halten. Momentan habe ich ein Problem mit dem Model. Jeder Datensatz soll observable sein, habe deshalb eine Klasse ObservableObject, welche Listeners hält und diese gegebenenfalls updated. Weiter habe ich Datensätze, welche von dieser Klasse erben, die Klasse Record (abstract). Nun gibt es Records die aus der Datenbank kommen, meine DBRecord s. Für die View schreibe ich mir einige Helper klassen, damit ich mir einigen aufwand ersparen kann. Diese Views (Tables, Trees, Lists etc.) arbeiten jeweils mit Controllern die Records enthalten. Nun habe ich beim Tree so meine Probleme. Möchte ich zum Beispiel eine Ordner oder Kategoriestruktur abbilden, so kann dies ja per reflection gemacht werden (jeder Record hat eine Referenz auf seinen Parent etc.) Also muss jeder Record den ich im Tree vom Controller erhalte, ein ReflectableRecord sein. Wenn ich jetzt aber eine Klasse ReflectableRecord definiere die von Record erbt, müsste ich auch eine Klasse schreiben, welche ReflectableDBRecord heisst und von DBRecord erbt. Dies ist mir jedoch zu mühsam. ich könnte natürlich auch einfach ein Interface machen, Reflectable, und dann meine implementierungen von Record bzw. DBRecord auch dieses Interface implementieren lassen. Dann müsste ich im Tree jedoch bei jedem Record ein Casting oder instanceof machen, was mir einfach extrem abwägig klingt, denn wenn das dann so weiter geht, wird irgendwann zu umständlich, und irgendwie habe ich das gefühl, der OO gedanke geht so verloren. Wie macht ihr solche Sachen?
TIA
grüsse gegel