Zitat:
|
Zitat von Waq Um eine ordentliche Struktur zu erzeugen, sollte überhaupt nicht auf einzelne Member-Variablen zugegriffen werden, auch nicht durch einen Accessor. |
richtig. was machst du in dem fall, wenn man die variable direkt braucht ?
Zitat:
|
Zitat von Waq Erstens ist deine Variante iterativ und nicht rekursiv. Zweitens wirkt sich das nicht auf den Zugriff von aussen aus, und genau der ist das relevante. |
moment, jetz haste mich verloren, was is denn an meiner variante iterativ ? ich seh da keine iteration. oder hab ich das grundprinzip von rekursion falsch verstanden ?
zweitens: wieso sollte es denn auch ? ich will von aussen eine methode aufrufen, die mir meine variable liefert, nicht erst selbst rekursiv oder iterativ oder sonstewas werden muessen, oder ?
Zitat:
|
Zitat von Waq Zitat: |
Zitat von fantast . und was waere denn deiner meinung nach eine bessere methode, um auf ein mehrdimensionales array, dessen genaue struktur man nicht kennt zuzugreifen ? | Wenn es eine Baumstruktur ist, sollte man es auch als Baum darstellen und nicht als Array. Bäume stellt man normalerweise durch Parent-Child-Verknüpfungen dar, z.B. wie ich beschrieben habe durch verschachtete Objekte. Wie beim DOM, nur viel schlanker. |
zugegeben, wenn hier tatsaechlich ein baum dargestellt werden soll, is das nich die optimale loesung, aber das hab ich mir ja auch nich ausgedacht :P
Zitat:
|
Zitat von Waq Zitat: |
Zitat von fantast wenn du deinen link oben genau laesest, wuerdest du auch folgendes entdecken: Zitat: |
A client of the class needs to move the data to some external medium. Examples include: Database, files, network transport and user interface. These are often perceived as necessary evils. I would like to explore other options.
| | Hier ist der Accessor, wie üblich, nur ein Hack, der einen zufriedenstellt, weil man ja OOP gemacht hat, der aber eigentlich nur verbirgt, dass man es besser machen könnte. Ohne direkten Zugriff auf eine einzelne Variable. Die Verantwortlichkeiten sind einfach falsch organisiert. Hier wird eine Entscheidung auf den Aufrufer übertragen, die vom Objekt selbst getroffen werden sollte. Wie meistens bei Accessoren... |
sprich dir waere es lieber wenn man in dem fall die methode nicht set() nennt sondern updateOnExternalMedium() aber den inhalt genau gleich laesst ? zugegeben, damit waere mehr transparenz gewaehrleistet, aber diese wieder zu lasten der uebersichtlichkeit.
ich habe eine klasse, die hat ein paar membervariablen, ob diese einfach lokale variablen sind, oder inner db liegen oder sonstwo ist mir als client doch erstmal voellig egal. ich will halt die variable haben. dazu rufe ich get() auf. wenn diese methode sich dann zur db verbindet, etc. is das doch nur in ordnung ?!?
sach an...