- DomCreator
- InOutHandler
- AjaxObjekt
- ActionController
Das sind zwar Objekte - vom Namen her - aber die Umsetzung ist keine Objektorientierte. Was sich auch daran erkennen läßt, dass es keinen einzigen Konstruktor gibt und das du nirgends new benutzt. Du erzeugst zwar Objekte, aber nur zur Datenhaltung, nicht um einen Objektorientierten Ansatz umzusetzen.
Ein Grundsatz der OOP lautet: Alles ist ein Objekt!
Das würde für deinen Ansatz bedeuten, du musst noch viel mehr Objekte benutzen. Dein DomCreator() erzeugt DOM Elemente, Tabellen, Tabellenreihen, d.h. da sind noch mindestens drei Objekte mehr enthalten. Wenn man sich dann das Objekt genauer anschaut sieht man Codewiederholungen, da sind sicher auch noch diverse Objekte enthalten.
Ich muss aber zugeben, dass ich bisher ähnlich gedacht habe und solche Multifunktionialen Objekte erzuegt habe, in dem Glauben ich würde OO programmieren. Vermutlich hängt das damit zusammen, dass vieles in JS komplizierter ist, als in anderen Programmiersprachen. Man möchte ungern Klassen bzw. Objekte, auf viele Dateien verteilen, da dies im Rahmen einer Internetseite nicht erwünscht ist. Das führt dazu, dass dann am Schluss solche monolithischen Blöcke herauskommen.
An Sicherheit oder private Variablen denke ich zur Zeit garnicht, weiß auch nicht, wo ich die wirklich brauchen würde, außer eben, dass man den globalen Scope nicht mit eigenen Vars überschreibt. Dazu nutze ich dann "my" als Präfix für meine Objekte.
Mit deinem Ansatz lassen sich private Variabeln auch gar nicht umsetzen, du hast keinen Konstruktor und die Objekte sind im Prinzip lediglich statische Singleton Objekte, die viel zu viel auf einmal machen.
Wenn ich das Objekt myDOMCreator richtig verstehe (ich habe im Moment nicht geug Zeit um mir den ganzen Code anzuschauen), dann ist z.b. die Methode buildRow() eine private Funktion, die nicht von aussen aufgerufen sollte - zumindest ergäbe das keinen Sinn, da der ganze Nutzen, erst innerhalb deiner "Klasse" zur Geltung kommt.
Struppi.