| | | | |
| |||||||
| 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: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse: Fortgeschritten ![]() | Hi. Eine Factory erzeugt ja Objekte, deren Schnitstelle klar definiert ist. In meinem Fall will ein Client ein Objekt, dass eine MySQL-Verbindng mit MySQL-spezifischen Methoden anbietet, ein anderer will ein Objekt, mit der er irgendeinen Web-Service ansteuern kann, der ganz andere Methoden bereit hält. Folglich taugt hier eine Factory nicht. Ob ein Mittelding, also ein Objekt, dass mehrere unterschiedliche Zugriffs-Objekte erstellen kann (für das es wahrscheinlich auch ein Pattern/einen Namen gibt) sinnig ist, weiß ich nicht so recht. Man könnte anhand des aus der Konfiguration für die angefragte Datenquelle ausgelesenen Typs den Namen der zu erzeugenden Klasse zusammenbasteln und von der dann über eine statische Methode ein Objekt ihrer selbst zurückgeben lassen (womit die Entscheidung, ob die Klasse als Singleton implementiert werden muss oder nicht in den Klassen selbst bleibt). Aber so ganz gelungen find ich das nicht. Basti PS: Die DAOs wissen ja um den Typ. Von daher könnte man von einer solchen ... wie nennt man so eine "Multi-Fabrik"? ... auch konkret die spezifischen Objekte anfragen: DataAccessFactory::getMySQLAccess('user_db'); Damit wären die Klassennamen raus aus der Konfiguration. |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 25.04.2005
Beiträge: 1.356
![]() | Zitat:
Ansonsten verstehe ich dann nicht wirklich was du bezweckst.
__________________ Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält. | |
| | |
| | |||
| Erfahrener Benutzer Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Basti | ||
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 25.04.2005
Beiträge: 1.356
![]() | Zitat:
Warum verbindest du nicht einfach eine Singleton mit einer Factory? In der Factory cachst du alle Verbindungresourcen und gibst entweder neue oder bestehende zurück. Wenn du unterschiedliche Datenbanken ansprechen willst, brauchst du unterschiedliche Objekte mit denselben Public Methoden.
__________________ Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält. | |
| | |
| | ||||
| Erfahrener Benutzer Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Zitat:
Zitat:
Ein solches Objekt für den Zugriff auf einen RSS-Feed hat aber natürlich keine Methode, eine Query einzugeben, sondern vielleicht nur "gibMirDieErstenXDatensätze(x)". Allen diesen Objekren gemein ist, dass die ein Ergebnis-Objekt zurückgeben, dass dann wieder über eine einheitliche Schnittstelle ausgelesen werden kann. Vielleicht bin ich da auch generell auf dem Holzpfad, aber in meinen Augen macht soweit erstmal Sinn. Basti | |||
| | |
| | |||
| Gast
Beiträge: n/a
| Zitat:
Dann brauchst Du da auch nichts kapseln oder abstrahieren, da der umgebende Code eh' schon wissen muss, was genau er mit dem Objekt anstellen kann. | ||
|
| | ||
| Erfahrener Benutzer Registriert seit: 25.04.2005
Beiträge: 1.356
![]() | Zitat:
Also meine MySQL Klasse enthält selbst geschriebene Mehtoden. Müsste ich jetzt eine für Oracle schreiben würde die auch eigene Methoden besietzten wobei die Public Mehtoden mit denen aus der MySQL Klasse übereinstimmen würden gerade aus dem Grund damit ich die "gleichzeitig" per Factory verwenden kann.
__________________ Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält. | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| mehrere dao, data access object abtrakte fabrik, dao php, verbindungsobjekt pdo, abfragen von mehreren verrschiedenen datenquellen |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.