ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
238
238
EMPFEHLEN
-
Hi,
habe mal eine allgemeine Frage zu Klassen.
Für ein Projekt benötige ich häufig sehr viele Datenbank-Querys.
Ist es sinnvoll/möglich eine globale Klasse für querys zu schreiben und später die daten über andere klassen zu verarbeiten?
nach folgendem Prinzip:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Class Mysql { function insert($value) { //in DB schreiben } ...... } Class Daten_verarbeiten{ function mysql_initialisieren() { } function daten_schreiben($value) { //mysql::insert -> daten schreiben! } ...... }
Ich hoffe ich ich konnte es einigermaßen verständlich erklären was ich meine...
Was denkt Ihr? Ist das so sinnvoll/möglich? wie löst ihr das?
Ich möchte es irgdnwie vermeiden in jeder klasse (das projekt besteht aus vielen eigenen modulen) ständig datenbankquerys zu schreiben.
Danke schonmal!
-
Hallo,
sowas ist schon sinnvoll.
Vor allem, wenn du vorher ein Interface definierst, welches angibt welche Methoden die Klasse enthalten soll.
Wenn du das überall dann nur das Interface nutzt um auf die Methoden zuzugreifen und eine Factory um das Object zu erstellen, könntest du nachher so leicht die Datenquelle wechseln.
Falls du nicht ganz verstanden hast, kann ich dir mal ein Beispiel bringen.
Gruß
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
Ich denk er will eher eine Klasse haben die er einmal startet und dann überall verfügbar ist.
Dafür würden sich das Singleton bzw Registry Pattern eignen.
-
@wod2008
Sowas lässt sich auch durch eine Factory lösen.
Er hat sie überall verfügbar und muss nur an einer Stelle was ändern, falls er die Datenquelle ändern möchte.
Hier ist mal ein Beispiel. Ist zwar in Java, aber leicht portierbar auf PHP, da die Syntax fast gleich ist.
Code java:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
public class MySqlDAO implements DataAccessObject { MySqlDAO() { // TODO Auto-generated constructor stub } @Override public void delete(int id) { } @Override public Object getById(int id) { return null; } @Override public void insert(Object object) { } }
Code java:1 2 3 4 5 6 7 8 9 10 11 12
public class DAOFactory { private static DataAccessObject instance = null; public static DataAccessObject getDAO(){ if(instance ==null) instance = new MySqlDAO(); return instance; } }
Code java:1 2 3 4 5 6 7 8 9 10 11 12
public class TestKlasse { public static void main(String[] args) { DataAccessObject dao = DAOFactory.getDAO(); dao.insert("Hallo"); } }
Also das DAO sollte schon bessere und mehr Methoden haben, hab es nur schnell zusammen geschrieben, um es deutlich zu machen.
So muss er halt nur in der Factory was ändern, wenn er die konkrete Implementierung tauschen möchte. Durch die Factory hat er das DAO auch überall zur Verfügung.
Gruß
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
Hi,
wow das ist schonmal echt klasse Versuche grade das Prinzip nachzuvollziehen. Der Grundgedanke ist genau das was ich vor hatte @Sascha Schirra
Ich verstehe aber diese Zeile nicht ganez:
DataAccessObject dao = DAOFactory.getDAO();
Ich kenne den Punkte "." in PHP eig. nur als Stringverbindung. Bin mir gerade nicht ganz klar wie der Punkt in bezug auf Methoden und Objekte arbeitet. Ist mir eig. nur aus JS bekannt....
Gruß
-
12.11.09 12:12 #6
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Der Punkt ist in Java equivalent zum Pfeil in PHP. Du müsstest also an der Stelle ein -> hinsetzen.
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
Oh, okay... I see

bin irgendwie oben von PHP-Code ausgegangen
Thx!
-
12.11.09 12:54 #8
- Registriert seit
- May 2007
- Ort
- Dresden (Sachsen)
- Beiträge
- 1.961
Da steht eindeutig Java Code. Die Kunst des Lesens ist einfach nicht mehr das, was sie einmal war.
Ich mag:- positive Bewertungen meiner Beiträge
- ein Danke für meine hilfreichen Beiträge
Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX
... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.
-
@david07
Wenn du das so umsetzt, wie ich es oben gezeigt habe, solltest du nur drauf achten, dass du immer, wenn du eine Instance des DAOs brauchst, die Factory nutzt und nicht ein new DAO() machst.
Gruß
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
Der Punkt(bei DataAccessObject dao = DAOFactory.getDAO()
steht hier für den :: in PHP, da man eine statische Funktion aufrufen will.
-
Super, vielen Dank euch schonmal für eure Hilfe. Werde das die Tage mal enstrpechend umsetzten. Mal sehn obs klappt
Ähnliche Themen
-
Generell: Frage zu IO-Exception
Von andy72 im Forum JavaAntworten: 5Letzter Beitrag: 12.10.10, 07:05 -
Generell Erfahrung mit Synth
Von derHarri im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 5Letzter Beitrag: 30.10.07, 14:49 -
linksclick generell abfangen
Von notebook20000 im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 11.07.07, 02:48 -
PHP-Funktionen Generell...
Von Hawkster im Forum PHPAntworten: 1Letzter Beitrag: 21.04.07, 05:48 -
Grafiken generell zu pixelig
Von Mako im Forum PhotoshopAntworten: 4Letzter Beitrag: 14.10.03, 23:13





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren