| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Erfahrener Benutzer Registriert seit: 01.12.2008
Beiträge: 450
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | Zitat:
$obj1->subobj->method(); Deine Idee speziell läuft auf folgendes Entwurfsmuster hinaus: http://de.wikipedia.org/wiki/Kompositum_(Entwurfsmuster) und ist damit klar OOP. Die Frage bleibt, ob das wirklich der richtige Ansatz ist. Ich habe noch nicht verstanden, was du genau vor hast, daher kann ich dir das nicht bestätigen. Was überdenken solltest ist die DB Abfrage in __get. Das ist sehr unperformant. Zumindest solltest du gleich alle Eigenschaften laden, zudem sollte das besser gesichert werden (zB dass man es keinen SQL Error gibt, wenn man versucht eine Eigenschaft anzusprechen, die nicht in der Tabelle existiert... Vielleicht benutzt du auch einfach gleich einen OR-Mapper, das ist vielleicht einfacher. @Mod: Eher Fortgeschritten oder gar Softwaredesign oder? | |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Mir fehlt gerade die Geduld, mich da näher einzulesen. Aber bei Tree und variabler Ansicht fällt mir das Bridge-Pattern ein. [MOD: verschoben]
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
| | |||
| Moderator Registriert seit: 18.07.2005
Beiträge: 4.072
![]() ![]() | Hmm, danke erst einmal für die Antworten. Design Pattern sind mir ein Begriff, habe mich aber noch nicht damit befasst, werde mich daher erst einmal darin einarbeiten. Ich habe nämlich das Gefühl, dass mein Problem ein Designproblem ist, da ich momentan einfach mit dem Aufbau der Klassen durcheinander komme. Ständig schiebe ich irgendwelche Methode und Eigenschaften hin und her! Zitat:
Unter Baumdiagramme könnt ihr euch ein paar Beispiel-"Bäume" anschauen! Die ersten 3 Beispiele sind Bäume die ich bereits mit dieser Klasse erstellen kann, den 4. Baum habe ich bearbeitet um zu zeigen, dass die Struktur der Bäume möglichst variabel sein soll, sprich später möchte ich weitere Strukturen hinzufügen! Für jede Struktur habe ich aktuell eine Klasse, die von der Klasse "MyTree" Eigenschaften wie z.B. Grafikbreite und die Image-ResourceID erbt. Ich müsste also für jede Struktur eine neue Klasse erstellen. Ist dies sinnvoll? Was alle Bäume jeder möglichen Struktur gemeinsam haben sind natürlich die Äste (oder Blätter). Diese sollen einfach nur neu angeordnet werden, was ich ja über die abgeleiteten Klassen mache, die von der Klasse "MyTree" erben! Das gefällt mir eigentlich auch so ganz gut, nur dann ist das Problem aufgetaucht, dass ich ja bestimmte Eigenschaften der einzelnen Äste für eine Struktur brauche, diese für die andere Struktur jedoch irrelevant sind! Bei dieser Struktur: http://www.php4yourself.de/tree/tree_3.png lege ich z.B. fest, in welchem Abstand die einzelnen Blätter an einem Ast angeordnet sind (siehe Blätter von "branch1"). Diese Information brauche ich bei dieser Struktur http://www.php4yourself.de/tree/tree_2.png jedoch nicht, weshalb auch die Formulare zur Bearbeitung der Baumeigenschaften unterschiedlich ausfallen. Meine bisherige Lösung: Für jede Baumstruktur eine include-Datei erstellen, die sich im Ordner PHP-Code: Ich meine, so kann es ja gehen. Nur ob das so sinnvoll ist?!?!!? Wie gesagt, ich werde mich dann erst einmal mit Entwurfmustern etc. auseinander setzen. Könnt ihr mir ein Buch dazu empfehlen, wo die Techniken vertieft werden? Ich besitze zwar eins zu PHP 5 und Objektorientierter Programmierung, jedoch werden Entwurfsmuster auf nur knapp 50 Seiten behandelt, was mir jetzt beim Überfliegen erst einmal dürftig erscheint. Da geht doch noch mehr oder? Zitat:
Bin für weitere Ideen zur Verbesserung dankbar. | ||
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Die helfen schon mal: Entwurfsmuster – Wikipedia design:decorator_pattern [phpPatterns] design:the_decorator_pattern_redecorated [phpPatterns] http://books.google.de/books?id=xJ30...esign+Patterns
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
| | ||
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.268
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Also so ganz verstehe ich dich nicht. Zunächst solltest du dir überlegen, ob Vererbung wirklich notwendig ist, oder ob es nicht besser wäre, die von php4yourself bereitgestellt Klasse als Objekteigenschaft zu nutzen. Damit bist du flexibler, da du beispielsweise diese Klasse später durch eine andere ersetzen könntest, die das ganze beispielsweise in SVG rendert. Hättest du das jetzt vor, wäre deine bisherige Klasse weitestgehend unbrauchbar dafür. Versuch also möglichst auf Vererbung zu verzichten. Zitat:
Wenn du extrem viele Eigenschaften oder sogar Objekte des selben Typs hast, kannst du das Fliegengewicht/Flyweight-Pattern verwenden. Hierbei wird versucht statt Duplikaten Referenzen auf ein Uniqueobjekt zu verwenden. Sprich: $icon = new Icon("folder.png"); $folder1 = new Folder("/xy"); $folder1->setIcon($icon); $folder2 = new Folder("/yz"); $folder2->setIcon($icon); Flyweight – Wikipedia Das hätte dann den Vorteil, dass bei der Darstellung eines riesigen Baumes (deiner Festplatte?) nicht genausoviel Icons wie Verzeichnisse erzeugt werden, sondern nur genau einer. (die Anwendung wie in meinem Beispiel oben ist natürlich etwas anders).
__________________ "Nuschel ich?" - "Was?" | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Eine klasse einbinden | newWorldOrder | PHP Tipps 2009 | 2 | 23.02.2009 19:32 |
| [Erledigt] Klasse in anderer Klasse benutzen | Screeze | PHP Tipps 2009 | 2 | 04.01.2009 14:57 |
| Methode einer anderen Klasse aufrufen | Luka | PHP-Fortgeschrittene | 15 | 09.11.2008 14:19 |
| Klasse aus externer Klasse aufrufen | kostja | PHP Tipps 2008 | 8 | 07.08.2008 14:13 |
| Variable aus Klasse herausbekommen | GSJLink | PHP Tipps 2008 | 7 | 16.02.2008 22:25 |
| Tool um (Spiel)Klassen zu erzeugen | Martin13 | PHP-Fortgeschrittene | 6 | 05.09.2007 02:25 |
| String-Parser Klasse - was muss rein? | Matze | PHP Tipps 2007 | 2 | 08.04.2007 22:14 |
| mehr als eine Klasse einbinden | Alpha Centauri | PHP-Fortgeschrittene | 4 | 13.04.2006 20:56 |
| Instanz einer Klasse in einer anderen Klasse verwenden | Buhmann | PHP-Fortgeschrittene | 7 | 28.10.2005 23:12 |
| [Erledigt] Führerschein für Klasse A+B.. Preis OK??? | Off-Topic Diskussionen | 20 | 13.07.2005 18:44 | |
| Rückgabewert auf einer Klasse anders als in der Klasse | micbur | PHP Tipps 2005-2 | 6 | 10.06.2005 15:06 |
| [Erledigt] Problem mit Übergabe einer Klasse in PHP4 | PHP-Fortgeschrittene | 10 | 08.01.2005 21:00 | |
| Klasse holt sich die Klasse | PHP-Fortgeschrittene | 9 | 07.10.2004 11:53 | |
| [Erledigt] Brauche Hilfe bei meiner ersten Klasse | PHP-Fortgeschrittene | 9 | 24.09.2004 17:09 | |
| Klasse ändern | UniQ | PHP Tipps 2004 | 5 | 24.08.2004 14:46 |