Portal > Foren > PHP > PHP-Programmierung > Wie Objekte/Vars in jeder Klasse verfügbar machen?
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 24.04.2006, 19:29 Nach oben    #1
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 285
Standard Wie Objekte/Vars in jeder Klasse verfügbar machen?

Nabend miteinander mal eine Frage,

Angenommen ich habe eine DB-, Wiki- und StringTools-Klasse. Dazu kommen einige Config Variablen.
Diese Dinge werden von meinen vielen anderen Klassen benötigt. Wie mach ich das in jeder Klasse verfügbar? Wie stelle ich das am geschicktesten an?

Was ich mal so gedacht hatte
1. Ich könnte eine große Klasse machen die Instanzen und Variablen der benötigten Klassen speichert. Die anderen Klassen erben dann von dieser Superklasse.
2. Ich könnte in jeder anderen Klasse jeweils im Konstruktor Instanzen der benötigten Klassen speichern. Was vielleicht nicht so geschickt ist da man vielleicht ein DB Objekt erst vorkonfigurieren muss (und auch mehr Instanzen des db objekts was vielleicht nicht gut is), was in der Superklasse ja einmalig gemacht werden müsste.
3. Ich erzeuge außerhalb die benötigten Objekte und reiche sie dann in die Konstruktoren der Klassen mit.
4. Ich könnte den alles einfach durchvererben allerdings haben meine Sub-Klassen dann Variablen die ich gar nicht brauch.

Irgendwelche Tips dazu? Ich denke der erste Punkte ist am geeignetsten.
ex³ ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.04.2006, 19:54 Nach oben    #2
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 355
Standard

Werf mal deine Gedanken kurz weg. Die erste Möglichkeit ist natürlich, für reine Informationen beispielsweise Konstanten zu nutzen (define und Konsorten). Die zweite gangbare Variante ist in PHP5 die Realisierung über Singletons. Beispiel:
Code:
class Singleton
{
private static $Instance = false;

public static function GetInstance()
{
    if (Singleton::$Instance === false) Singleton::$Instance = new Singleton();
    return Singleton::$Instance;
}

}
Als dritte Option in PHP4 würde ich für diesen einen Zweck den Weg über eine globale Variable gehen, beispielsweise für den Datenbank-Zugriff. Warum? Als erstes finde ich es persönlich besch...., ständig mit Referenzen rumzuhantieren und aufzupasen, wo ich Referenzen vergessen habe und zum zweiten finde ich es unschön, einen Konstruktor aufzublähen und sich hunderte Objekte zu merken, nur weil man sie nirgendwo "richtig" ablegen kann, also nutzt man die einzige Chance in PHP4, nämlich Globale Variablen.

Persönliche Einstellung von mir, kanns ein, dass andere das auch wieder schlecht finden
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Klasse verfügbar machen jjelliss PHP-Programmierung 7 09.09.2007 15:36
Klasse in Klasse verwenden? goelliboy PHP-Programmierung 12 07.09.2007 11:43
Thunderbird 1.5.0.7 / Firefox 1.5.0.7 verfügbar Ben Nachrichten 0 14.09.2006 17:10
Wert Varible in Listener anderer Klasse nutzen??? risa Desktop-Applikationen und Grafik 1 03.04.2006 07:36
Design für eine Klasse js-mueller Allgemeine Java-Programmierung 1 12.03.2006 19:23


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:35 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45