Hallo,
(Bezugnehmend auf: osxentwicklerforum.de/thread.php?threadid=5498)
sorry, dass ich euch in letzter Zeit mit so vielen Problemen bzw. Fragen, wie man ein Problem am besten löst beschäftige. Aber mir ist es einfach wichtig meine Gedanken auf Richtigkeit/Praktikabilität zu überprüfen. Hier das nächste:
Zwei Entitäten: Haus und Person. In einem Haus wohnen n Personen und eine Person wohnt in einem Haus - also eine klassische to-many Beziehung.
Jede Person hat u.a eine Eigenschaft (Boolean): istBöse. Falls istBöse == YES, dann handelt es sich bei der Person um einen Verbrecher und die Polizei muss kommen. Das UI dazu sieht so aus:
Eine Tabelle mit zwei Spalten: eine Spalte zeigt die Hausnummer/Straße der Häuser und die andere Spalte zeigt an, ob die Polizei kommen muss.
Die Polizei muss kommen, falls eine Person in einem Haus böse ist. Mein Erster Gedanke war den Häusern einfach einen read-only Accessor zu verpassen "needsPolizei", der durch die Personen in dem Haus iteriert und überprüft ob alle Personen nicht böse sind. Das klappt auch ganz gut - Problem: wird eine Person böse, die schon in einem Haus ist bekommt mein Haus davon erstmal nichts mit - es muss zunächst wieder um ihre "needsPolizei" Eigenschaft befragt werden.
Das Haus könne nun wieder eine to-many Beziehung observieren. Das wäre wohl die beste Lösung - nichwahr?
"Einfachere" Lösung: Sobald eine Person böse wird informiert sie ihr Haus ganz explizit mit einem Methodenaufruf. Ich kann mich nicht zwischen "Observierung einer to-many Beziehung" und dem "Aufrufen einer Methode" entscheiden. Mein Hirn sagt, dass das Observieren einer to-many Eigenschaft aus folgenden Gründen die bessere Wahl wäre:
* es bleibt schön gekapselt: eine Person muss nicht wissen, was sie zu tun hat, falls sie böse wird - in der Realität würde eine Person ja auch niemals auf die Idee kommen sich selbst zu belasten.
* jetzt mag ein Methodenaufruf noch die einfachere Wahl sein, da die Eigenschaft "needsPolizei" nur von einer Eigenschaft der Personen abhängt. Aber falls später mehrere Abhängigkeiten dazukommen muss die Person an vielen vielen Stellen immer ihr haus informieren. Bei der Observierung einer to-many Beziehung kann ich ja dann einfach diese von der Observierung auf eine Eigenschaft auf mehrere ausweiten. Außerdem kann ich ja noch eine Person automatisch für all Ihre Eigenschaften ihre Observer informieren lassen.
Für welche Lösung entscheidet man sich da am besten?
Dangeeee
(Bezugnehmend auf: osxentwicklerforum.de/thread.php?threadid=5498)
sorry, dass ich euch in letzter Zeit mit so vielen Problemen bzw. Fragen, wie man ein Problem am besten löst beschäftige. Aber mir ist es einfach wichtig meine Gedanken auf Richtigkeit/Praktikabilität zu überprüfen. Hier das nächste:
Zwei Entitäten: Haus und Person. In einem Haus wohnen n Personen und eine Person wohnt in einem Haus - also eine klassische to-many Beziehung.
Jede Person hat u.a eine Eigenschaft (Boolean): istBöse. Falls istBöse == YES, dann handelt es sich bei der Person um einen Verbrecher und die Polizei muss kommen. Das UI dazu sieht so aus:
Eine Tabelle mit zwei Spalten: eine Spalte zeigt die Hausnummer/Straße der Häuser und die andere Spalte zeigt an, ob die Polizei kommen muss.
Die Polizei muss kommen, falls eine Person in einem Haus böse ist. Mein Erster Gedanke war den Häusern einfach einen read-only Accessor zu verpassen "needsPolizei", der durch die Personen in dem Haus iteriert und überprüft ob alle Personen nicht böse sind. Das klappt auch ganz gut - Problem: wird eine Person böse, die schon in einem Haus ist bekommt mein Haus davon erstmal nichts mit - es muss zunächst wieder um ihre "needsPolizei" Eigenschaft befragt werden.
Das Haus könne nun wieder eine to-many Beziehung observieren. Das wäre wohl die beste Lösung - nichwahr?
"Einfachere" Lösung: Sobald eine Person böse wird informiert sie ihr Haus ganz explizit mit einem Methodenaufruf. Ich kann mich nicht zwischen "Observierung einer to-many Beziehung" und dem "Aufrufen einer Methode" entscheiden. Mein Hirn sagt, dass das Observieren einer to-many Eigenschaft aus folgenden Gründen die bessere Wahl wäre:
* es bleibt schön gekapselt: eine Person muss nicht wissen, was sie zu tun hat, falls sie böse wird - in der Realität würde eine Person ja auch niemals auf die Idee kommen sich selbst zu belasten.
* jetzt mag ein Methodenaufruf noch die einfachere Wahl sein, da die Eigenschaft "needsPolizei" nur von einer Eigenschaft der Personen abhängt. Aber falls später mehrere Abhängigkeiten dazukommen muss die Person an vielen vielen Stellen immer ihr haus informieren. Bei der Observierung einer to-many Beziehung kann ich ja dann einfach diese von der Observierung auf eine Eigenschaft auf mehrere ausweiten. Außerdem kann ich ja noch eine Person automatisch für all Ihre Eigenschaften ihre Observer informieren lassen.
Für welche Lösung entscheidet man sich da am besten?
Dangeeee
Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.
Objective-C und Cocoa Band 2: Fortgeschrittene
Cocoa/Objective-C Seminare von [co coa:ding].
Objective-C und Cocoa Band 2: Fortgeschrittene
Cocoa/Objective-C Seminare von [co coa:ding].