| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Bewertung: |
| | |
| Erfahrener Benutzer Registriert seit: 26.05.2008
Beiträge: 200
PHP-Kenntnisse: Fortgeschritten ![]() | Ich stehe im Moment vor dem Problem, wie ich mein Model und meine View miteinander verbinden kann. Ich will versuchen, es an einem einfach gehaltenem Beispiel deutlich zu machen: Das Domain-Model: PHP-Code:
Wie komme ich nun darum herum, in meiner View ständig if-else- oder switch-Konstrukte verwenden zu müssen? Ein paar Ansätze habe ich, aber so wirklich gefallen tun sie mir alle nicht. Entscheidung ins Model verlagern Eine Möglichkeit wäre es, der Klasse Thread z.B. eine getImageSource-Methode zu verpassen, die dann von dem ImportantThread überschrieben werden könnte. Allerdings ist dies ein Wissen, welches das Model gar nicht haben sollte (je nach View mag es verschiedene Bilder geben). Von daher klingt dieser Ansatz für mich nicht sehr klug. Eine extra Klasse aus der View für jedes Domänenobjekt Ein anderer Ansatz wäre, für jedes Domänenobjekt noch ein Objekt aus der View zu nutzen. Das könnte z.B. so aussehen: PHP-Code:
Das Negative:
Wirklich gefallen tut mir auch diese Möglichkeit nicht. Gibt es für mein Problem ein Möglichkeit, die ich übersehen habe? Irgendeine BestChoice vielleicht?
__________________ Programming PHP |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Moderator und Wett-König | Zitat:
Betrachtet man die einzelnen Typen, so ist das Icon/Bild eines solchen Threads definitiv ein Attribut eines Domänen-Objekts und hat nichts in der View-Logik zu suchen. Ein Important-Thread ist also ein ganz einfacher Thread, dessen Bild einfach anders ist. Wer diese Information in den Thread injiziert sei zunächst dahingestellt, kann aber sehr einfach an Hand des Typen ohne jegliches zusätzliche Mapping erfolgen (Icon hat den Typ-Bezeichner im Datei-Namen) oder durch explizites Mapping in einer Business-Schicht an Hand von diversen Informationen initialisiert werden. Fakt ist jedoch, dass der oben vorgestellte Ansatz definitiv Blödsinn ist, da du Funktions- und Struktur-Duplizierung betreibst.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() | Zitat:
Was anderes ist das z. B. bei einem User und dessen Avatar-Bild. | |
| | |
| | ||
| Moderator und Wett-König | Deswegen hatte ich ja auch Zitat:
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| | |
| | |||
| Erfahrener Benutzer Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() | Zitat:
Ist mir irgendwie entgangen..EDIT: Zitat:
Geändert von xm22 (08.06.2011 um 16:16 Uhr). | ||
| | |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 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. -- | |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 26.05.2008
Beiträge: 200
PHP-Kenntnisse: Fortgeschritten ![]() | Ich versuche das mal zusammenzufassen, mal sehen ob ich alles richtig verstanden habe. Einige Informationen lassen sich direkt im Domänen-Objekt unterbringen (z.B. der Avatar eines Users). Dementsprechend lässt sich auch die Unterscheidung verschiedener Typen bewirken, die sich z.B. nur in ihrer Darstellung unterscheiden. Will ich komplexere View-Logik ausdrücken, arbeite ich aber lieber mit extra Klassen für die View-Logik.
__________________ Programming PHP |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| MVC Fragen | BlackScorp | Software-Design | 42 | 07.06.2011 19:12 |
| MySQL per View auf eine andere DB zugreifen | jens76 | Datenbanken | 17 | 06.06.2011 15:42 |
| Document Object Model | farant | Wiki Diskussionsforum | 0 | 15.04.2011 11:57 |
| [Erledigt] Korrektes Umgehen mit View bei MVC | Trainmaster | Software-Design | 7 | 22.10.2010 12:41 |
| View | Controller | .. wohin mit Errors? | d0ne | Off-Topic Diskussionen | 13 | 18.10.2010 17:42 |
| cakePHP View Abstraktion | Deltachaos | Software-Design | 6 | 08.10.2010 15:20 |
| phpdoc view | notyyy | PHP-Fortgeschrittene | 7 | 07.09.2010 20:12 |
| Model view controll | Leberwurstbrot | PHP Tipps 2010 | 14 | 05.03.2010 18:14 |
| MVC Model Daten als Referenz oder Kopie übergeben? | serious-cool | PHP Tipps 2009 | 1 | 12.01.2010 22:10 |
| Template System -> View in PHP | Floid | PHP-Fortgeschrittene | 12 | 22.11.2009 11:58 |
| Zend_Controller_Router_Route routet nach der View | boolean | PHP-Fortgeschrittene | 10 | 13.08.2009 11:12 |
| View vs. Join | dsmcg | Datenbanken | 8 | 17.03.2009 07:58 |
| Welche Information bekommen die einzelnen MVC-Elemente? | Zergling-new | PHP-Fortgeschrittene | 14 | 06.10.2007 16:59 |
| cms selber machen. tipps / dateistruktur | Promaetheus | PHP Tipps 2007 | 31 | 16.03.2007 19:53 |
| PHP und HTML sinnvoll verbinden | Fatal Error | PHP Tipps 2007 | 10 | 07.01.2007 15:12 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php view extends model?, model view php |