| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Neuer Benutzer Registriert seit: 09.03.2010
Beiträge: 23
PHP-Kenntnisse: Anfänger ![]() | Daran hatte ich schon gedacht, was ja durchaus, wenn man nicht aufpasst, bei einer komplexeren Hierarchie passieren könnte. So etwas hatte ich mir im Prinzip auch vorgestellt, nur waren bei mir die Contacts mehr oder weniger fest in der Fabrik verankert und die Contacts waren auch eher nach dem Motto da "Hauptsache jeder Worker hat ein Contact, aber die Contacts an sich interessieren mich nicht.", aber die Idee hat sich dann doch schnell als unpraktisch erwiesen.
__________________ Kardey |
| | |
| | |
| Neuer Benutzer Registriert seit: 09.03.2010
Beiträge: 23
PHP-Kenntnisse: Anfänger ![]() | Hoffentlich ist dieser Beitrag nicht zuuuu lange geworden Hallo, ich habe das Beispiel mit den Arbeitern, dem Ansprechpartner und dem Chef mal etwas ausgebaut, um das Zusammenspiel der Observers aktiv zu sehen. Die beiden Interfaces bleiben unverändert (mit Ausnahme verbesserter Methodennamen): PHP-Code: PHP-Code: PHP-Code: Neben dem Worker gibt es noch die Contacts: PHP-Code: Zuletzt gibt es noch den Boss: PHP-Code: Mein Beispielablauf sieht wie folgt aus: PHP-Code: Code: Kardey: I start working!
Kardey: 2. job finished!
Kardey: 1. job finished!
Kardey: 4. job finished!
Kardey: 3. job finished!
Kardey's Ansprechpartner: I need new Jobs!
Boss: Here are 10 new Jobs!
Kardey: 61. job finished!
Kardey: 56. job finished!
Kardey: I'm done for today.
Kardey's Vorarbeiter: See you tomorrow, Kardey!
Bevor ich nochmal die zweite Frage aus meinem Ausgangsbeitrag aufnehmen möchte, habe ich noch eine "Detail-Frage": Wenn der Worker einen Job abgearbeitet hat, fügt der Contact diesen Job ins $finishedJobs-Array des Workers ein (damit der Worker nachher eine Übersicht hat, welche Jobs er begearbeitet hat, oder warum auch immer
__________________ Kardey |
| | |
| | |||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | ||
| | |
| | ||
| Neuer Benutzer Registriert seit: 09.03.2010
Beiträge: 23
PHP-Kenntnisse: Anfänger ![]() | Zitat:
(Trotzdem mal meine Gedanken dazu: Meinst Du mit der "Parallelität", dass mehrere Workers "gleichzeitig" aktiv sind, oder das die Workers gleichzeitig mehrere andere Objekte "verändern", wie es beim Beispiel auf Wikipedia der Fall ist (Messergebnisse und ihre Darstellung in verschiedenen Diagrammen)?) Könnte vielleicht jemand ein praktisches Beispiel "liefern", dass auch irgendwo implementiert ist, also auch in der Praxis angewandt wird?
__________________ Kardey | |
| | |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Observer in PHP muss man deswegen vermutlich etwas anders bewerten, als in Echtzeitapplikationen. Sie dienen hier wohl mehr zur Entkoppelung von Objekten als zur Eventsteuerung.
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | |
| | |
| | ||
| Neuer Benutzer Registriert seit: 09.03.2010
Beiträge: 23
PHP-Kenntnisse: Anfänger ![]() | Zitat:
Aber meinst Du wirklich "Entkopplung", denn eigentlich werden die Objekte doch gerade durch das Pattern aneinander gekoppelt (Worker <-> Contact <-> Boss)? Dürfte ich jetzt nochmals meine zweite Frage aus meinem ersten Beitrag aufgreifen, in wie weit das Pattern für Erweiterungen geeignet ist, man also beispielsweise durch ein PlugIn einen zusätzlichen Observer hinzufügt. Hierzu habe ich mir aber in der Zwischenzeit mal Gedanken gemacht In den eigentlichen Programmablauf komme ich ja nicht rein, es sei denn ich würde die Observers eines Observeable-Objektes beispielweise in einer Datendank speichern, also vereinfach ausgedrückt so: Code: Observeable | Observer Wäre das eine realistische Vorgehensweise?
__________________ Kardey | |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 27.06.2009
Beiträge: 498
PHP-Kenntnisse: Anfänger ![]() ![]() | Die Kopplung ist aber deutlich loser als ohne das Pattern. Sonst müsstest du z.b. direkt in den Code des Observables reinschreiben "sags dem und jenem und hier noch". So kann es dem Observable vollkommen gleichgültig sein wer es beobachtet, ich habe jetzt dein Worker/Contact/Boss Beispiel nicht nachvollzogen, aber der doppelte Pfeil ist dort wohl falsch. Sollte Worker observable sein und Boss der Observer dann passt "Worker <- Boss" besser. |
| | |
| | ||
| Neuer Benutzer Registriert seit: 09.03.2010
Beiträge: 23
PHP-Kenntnisse: Anfänger ![]() | Zitat:
Meine doppelten Pfeile sollten eher die Kopplung symbolisieren, wobei Deine Wahl der Pfeile bezogen auf das Observer/Observeable-Verhältnis natürlich besser passen.
__________________ Kardey | |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Die Frage mit den Plugins verstehe ich nur halb. Grob skizziert: - Grundlegend hindert Dich niemand daran, mehere Observer zu verwenden - Willst Du einen bestehenden Observer verwenden, muss das observered Object eine Schnittstelle bedienen, die dem Observer bekannt ist.
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Design Pattern | BlackScorp | PHP Tipps 2009 | 7 | 06.01.2010 19:04 |
| [Erledigt] Crockfords Functional Pattern #fail | phpdummi | JavaScript, Ajax und mehr | 1 | 20.06.2009 21:38 |
| Welches Pattern? | Creator | PHP-Fortgeschrittene | 19 | 14.04.2009 21:46 |
| [Erledigt] preg_match und die Pattern | Spoiler | PHP Tipps 2009 | 9 | 13.02.2009 08:29 |
| Formulargenerierung | Composite Pattern | moveax1 | PHP-Fortgeschrittene | 13 | 27.01.2009 09:44 |
| preg_replace: Gleiche Platzhalter im Pattern | Lavalampe | PHP Tipps 2009 | 5 | 16.01.2009 21:42 |
| Singleton Pattern Verstaendisproblem | Luka | PHP Tipps 2008 | 13 | 19.12.2008 19:00 |
| PHP Command Pattern = Module? | meGa | Software-Design | 4 | 14.12.2008 12:35 |
| [Erledigt] Formularvalidierung, preg_match pattern Problem | moveax1 | PHP Tipps 2008 | 4 | 12.12.2008 16:48 |
| Design Pattern | Harry B. | Software-Design | 7 | 02.09.2008 20:49 |
| Bild vor Link pattern | TimmaY | PHP Tipps 2007 | 5 | 21.03.2007 18:06 |
| Events, Observer, Henne-Ei-Problem | Basti | PHP-Fortgeschrittene | 3 | 09.05.2006 15:53 |
| Folgendes Pattern | PHP Tipps 2005 | 5 | 01.03.2005 12:41 | |
| Probleme mit Pattern bei Templateersetzung | RudiS | PHP-Fortgeschrittene | 2 | 19.02.2005 22:09 |
| preg_match --> pattern | PHP Tipps 2004 | 4 | 27.08.2004 18:12 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| verhindern endlosschleifen observer, observer pattern anwendungsfälle, endlosschleifen observer verhindern, observer endlosschleifen verhindern, observer pattern endlosschleifen, observer pattern beispiel messergebnis, observer observable gleichzeitig, observer pattern php, observable und gleichzeitig observer, observer beispiel, beispiel zu observer pattern |