| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Bewertung: |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Schau Dir mal das Strategie-Pattern an, vielleicht bringt Dich das weiter. Kann Dein Problem gerade nicht nachvollziehen.
__________________ -- 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: 02.09.2009
Beiträge: 1.020
PHP-Kenntnisse: Fortgeschritten ![]() | Prinzipiell ist es so, dass du auf die Eigenschaft an dieser Stelle gar nicht zugreifen dürftest. Wenn du dort ein Data-Objekt erwartest, darfst du auch nur auf Eigenschaften und Methoden von Data zugreifen. Data1 ist tabu. Sonst fliegt dir nämlich dein Programm um die Ohren, wenn du die Methode auf einer Data2 Instanz aufrufst (was ja legitim wäre). Eine Lösungsmöglichkeit zu nennen fällt schwer ohne die konkrete Umgebung und den Sinn und Zweck zu kennen. Die simpelste Lösung wäre wohl etwas wie PHP-Code:
__________________ Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de |
| | |
| | |
| Moderator und Wett-König | Kannst du mir mal kurz einen Abriss geben, was du genau mit dem Klassendesign bezweckst? Ich würde gerne vermeiden über if's und instanceof's diskutieren zu müssen, wenn es einfach durch Inversion der Abhängigkeiten oder Null-Pattern zu lösen ist - vielleicht auch durch Strategy. Wobei ich vor der Anwendung von letzterem eher noch über DI auf Basis eines Service-Interfaces nachdenken würde.
__________________ 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! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | ||
| Neuer Benutzer Registriert seit: 25.05.2011
Beiträge: 5
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Im Grunde geht es um folgendes Szenario. Ich habe einen Webservice, der einen Proxy zu einem Backend-Dienst darstellt. Der WebService implementiert verschiedene Services (Service1, Service2, ...). Diese rufen beim Backend-Dienst wiederum Services auf, die mit sich ähnelden XML-Nachrichten angesprochen werden. Die Data-Klassen dienen dazu, die Daten aufzunehmen, die der Webservice erhält, damit eine XML-Factory-Klasse den entsprechenden Request bauen kann. Die Data-Implementierungen spiegeln also die XML-Stuktur der Backend-Requests als Objekt wieder. "Data" an sich enthält dabei gemeinsame Elemente, die allen erbenden Data-Klassen gemein sind. In der tatsächlichen Implementierung handelt es sich nicht um primitive Felder, sondern die einzelnen Data-Klassen-Felder sind wiederum Objekte, die auch Ihre Inhalte validieren können. Ein Übergeben der Eingabedaten ohne den Umweg der Data-Klassen halten ich für wenig sinnvoll, da zum einen halt die Data-Klassen die Request-Formate beim Backend widerspiegeln und zum anderen spätestens in der XML-Factory zu viel Logik wäre, die sich um die Beschaffung der Daten kümmern müsste. Die XML-Factory orientiert sich beim Zusammenstellen des XML-Requests an der vorhandenen Struktur des jeweiligen Data-Objekts. Übertragen auf mein Code-Beispiel bedeutet dies (in meiner bereits geänderten Code-Fassung) nun, dass eine Service-Klasse in doit() zuerst via setDataForAllFields() anstößt, dass das konkrete Data-Objekt "sich selbst" mit Daten füllt. Weiter übergibt doit() (bzw. eine weitere Methode) dann das gefüllte Data-Objekt an die XML-Factory um mit dem Ergebnis den Backend-Dienst anzusprechen. | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] OOP - Klassen richtig Designen, aber wie? | Yamo | PHP Einsteiger | 8 | 01.01.2011 12:03 |
| Wozu brauche ich eigentlich eine abstrakte Klasse? | echo | PHP Tipps 2010 | 28 | 24.11.2010 17:10 |
| [Erledigt] Design von Klassen für Datenbankabfragen | Sirke | Software-Design | 10 | 17.06.2010 12:40 |
| Mehrere Klassen verknüpfen | BlackJack01090 | Software-Design | 9 | 26.05.2009 20:43 |
| Modulare Programmierung - Klassen nur in Klassen Gültig | iXtends | Software-Design | 6 | 26.05.2009 15:37 |
| Design und Code Trennen | TeazY | PHP Tipps 2008 | 29 | 21.05.2008 12:08 |
| Fragen zu Klassen | Kein Genie | PHP Tipps 2006 | 3 | 08.05.2006 11:25 |
| Sessions an includete Klassen übergeben | Dr_Enquinox | PHP Tipps 2006 | 4 | 29.04.2006 10:25 |
| mit html klassen definieren und in php ausgeben | PHP-Fortgeschrittene | 4 | 16.01.2006 10:31 | |
| Design | Beitragsarchiv | 26 | 04.06.2005 20:56 | |
| klassen und methoden anderer klassen in methoden.... | PHP Tipps 2005 | 17 | 25.05.2005 09:46 | |
| Klassen | PHP Tipps 2005 | 5 | 09.04.2005 18:51 | |
| Klassen in Klassen verwenden | PHP Tipps 2005 | 5 | 23.02.2005 14:08 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php klassendesign, klassendesign, php oop klassendesign, php objekt datensätze, software design klassenbeschreibung in oo, klassen n zu m, softwaredesign service klassen, klassendesign php, phpstorm |