dedlfix: Variable an eine Klasse binden

Beitrag lesen

Tach!

Mein Ansatz ist ähnlich wie der von dedlfix, jedoch benutze ich eine fertige Klasse bzw. ein fertiges Klassenmodel: ArrayObject

Ja, das macht dasselbe in grün, und noch etwas mehr, weil es nicht nur ArrayAccess implementiert. Allerdings hat man keinen direkten Zugriff auf die Daten, sondern kann nur die parent-Methoden verwenden. Das kann nachteilig sein, muss es aber nicht.

Also wie ein normales Array. Jedoch kann man die Klasse Hotti um Methoden erweitern. So könnte man dem ganzen z.B. auch eine save Methode geben, welche die Daten in die Datenbank speichert ...

Das sollte man möglichst vermeiden, damit die Klasse bei ihrer einen Aufgabe bleibt und kein Universalmonster wird. Eine Kuh melkt sich auch nicht selbst.

... bzw. wiederum eine Klasse initialisiert, die das übernimmt.

Das ist mir etwas unverständlich. Die Speicherung jedenfalls kommt auf den Zweck des Arrays an. Entweder gibt es einen Mapping-Mechanismus, der die Array-Felder in Tabellenfelder umsetzt, oder die Tabelle ist nur ein Key-Value-Speicher oder die Array-Daten werden serialisiert und als ein String in einem Tabellenfeld abgelegt (SLOB: serialized LOB). Letzteres kann man nehmen, wenn die Datenbank nicht auf die einzelnen Elemente zugreifen muss oder Relationen zu pflegen sind.

Ein weiterer Vorteil ist, dass das ganze Konstrukt als normales Array betrachtet werden kann. Man kann es mittels foreach durchlaufen. Wer es komplett Objekt orientiert mag kann aber auch die ArrayIterator Klasse benutzen.

Jein. Normale Array-Funktionen kann man damit nicht oder nur begrenzt aufrufen.

dedlfix.