| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |||
| Erfahrener Benutzer Registriert seit: 26.11.2008
Beiträge: 264
![]() | Da ich dein Projekt oder deine Idee nicht kenne, darf ich sie eigentl. nicht kritisieren. Es scheint mir aber, als ob du Probleme versuchst zu umgehen, du dadurch aber neue schaffst. Zitat:
Zitat:
| ||
| | |
| | |
| Erfahrener Benutzer Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() | also ohne die vorherigen Antworten alle vollständig gelesen zu haben, verweise ich hier mal auf den Weg, den man in Java geht - dort gibt es ja auch erzwungene Einfach-Vererbung ... Mehrfach-Vererbung löst man in Java durch Interfaces, davon darf eine Klasse - neben ihrer Elternklasse - sogar mehrere haben, die dann natürlich besondere Aufmerksamkeit beim Ausprogrammieren erfordern (gleiche Methodennamen sind tödlich)
__________________ "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 22.01.2005
Beiträge: 606
![]() | @eagle275: Ich glaube das hilft ihm jetzt nicht wirklich weiter, da er nicht danach sucht Methoden nach außen hin zu veröffentlich sondern intern nutzen zu können. Also benötigt er weniger das Interface als viel mehr die spezielle Implementierung. Also ich finde die bereits beschrieben Ansätze sehr sinnvoll (entweder die Basisklasse als Member-Variable oder eben z.B. den XML Processor). Ich hab mich allerdings gefragt, wie du es durch Vererbung erreichen willst, dass du keinerlei globale Variable (inklusive Singletons, etc.) mehr hast. Irgendwo wirst du doch vermutlich auch in der Vererbung auf feste Daten zugreifen wollen, die immer gleich sind, oder werden in den Funktionen (der Basisklasse) nur Operationen ausgeführt, die von keinen Attributen (der Basisklasse) abhängen? MFG Connar |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() | Zitat:
Es soll also jedes Objekt bestimmte zusätzliche Eigenschaften haben. Selbst bei einer flexiblen Sprache wie JavaScript, wo das durch eine Erweiterung des passenden Prototypen einfach möglich ist, wird dazu geraten, damit sehr sparsam umzugehen bzw. es möglichst zu vermeiden. Auch wenn du dein Konzept hier nicht ausbreiten und diskutieren willst, werfe ich mal alternative Ansätze in den Raum - ob für deinen Fall anwendbar, musst du selbst entscheiden: - Meta-Daten zu Objekten könnten in einer speziellen Registry mit SplObjectStorage (map from objects to data) untergebracht werden - Methoden, die darauf operieren leben in einer eigenen Klasse und bekommen das konkrete Objekt als Parameter Einfache Lösung, widerspricht aber der Anforderung "ohne globale Zugriffspunkte". Zweite Idee: - Behalte den Kompositions-Ansatz bei, aber nicht als Workaround für Mehrfachvererbung sondern um Vererbung komplett herauszulassen (die mmN von vorneherein fehl am Platz war). Das einzige, was all deine Klassen dann gemeinsam haben sollten ist: PHP-Code: PHP-Code: Du siehst, diese Lösung ist deiner ziemlich ähnlich, kommt aber quasi von der anderen Seite. Wir nehmen keine Basis-Klasse und brechen sie auf, sondern ein zusätzliches Objekt und hängen es an. | |
| | |
| | ||||
| Erfahrener Benutzer Registriert seit: 10.10.2009
Beiträge: 2.631
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Das "Problem" ist ja auch hausgemacht. Ich wollte mir das Durchlaufen des XML Baumes sparen um die Klasse SimpleXMLElement erweitern zu können, da dies aber ohne Mehrfachvererbung nicht ohne gleichem oder höherem Aufwand zu lösen zu sein scheint, greife ich auf diesen Weg zurück. Zitat:
Zitat:
__________________ "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst". Geändert von Dark Guardian (24.01.2012 um 10:50 Uhr). | |||
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Fehlende Klasse (SOAP) bei Freehoster | Atikos | PHP Einsteiger | 2 | 26.02.2011 10:18 |
| [Erledigt] Workaround für fehlendes PDO::MYSQL_ATTR_FOUND_ROWS bzw. Bug in DBO::rowCo | Dawn | Datenbanken | 9 | 31.01.2011 11:38 |
| [Erledigt] Konstruktoraufruf bei Mehrfachvererbung | hts | JavaScript, Ajax und mehr | 5 | 09.01.2011 17:28 |
| Fehlende Werte im Index füllen | akogler | Datenbanken | 6 | 29.12.2010 20:49 |
| MySQL, fehlende Datensätze!? | The Virusman | PHP Einsteiger | 5 | 14.12.2010 14:44 |
| [Erledigt] Fehlende Umlaute im HTML | phreund | PHP-Fortgeschrittene | 4 | 10.12.2010 14:28 |
| [Erledigt] Fehlende Rechte auf /tmp -> Probleme mit Sessions | Gemouen | PHP Tipps 2009 | 3 | 28.10.2009 21:59 |
| Padding IE Table workaround oder css-hack? | Circushund | HTML, Usability und Barrierefreiheit | 10 | 16.05.2009 19:17 |
| Abfrage auf fehlende ID in einer Tabelle | maeck | Datenbanken | 2 | 04.07.2007 19:44 |
| imagefillrectangle mit transparenz workaround? | Promaetheus | PHP Tipps 2006 | 2 | 20.10.2006 04:46 |
| Fehlende Einträge in Tabelle finden | Cyberbob_at_tot | Datenbanken | 17 | 29.06.2006 15:39 |
| fehlende MYSQL-extension für PHPMyaAdmin | FatherDeath | Datenbanken | 3 | 20.05.2006 15:56 |
| Fehlende MySQL-Clients? | Datenbanken | 1 | 29.07.2005 12:46 | |
| Fehlende Zahlen suchen und Reihung ändern.... | MortakArtos | PHP-Fortgeschrittene | 5 | 26.09.2004 12:21 |
| [Erledigt] fehlende Zeilenumbrüche in Text E-mail (php / mysql) | Datenbanken | 6 | 30.08.2004 13:11 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php mehrfachvererbung, fehlende mehrfachvererbung, java mehrfachvererbung workaround, php mehrfach vererbung, welcher freehoster hat php 5.4 |