AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Abhängigkeit von Klassen unmöglich?
Thema durchsuchen
Ansicht
Themen-Optionen

Abhängigkeit von Klassen unmöglich?

Ein Thema von Matze · begonnen am 11. Mär 2010 · letzter Beitrag vom 14. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Abhängigkeit von Klassen unmöglich?

  Alt 11. Mär 2010, 13:53
Hallo,

der folgende Code ist in PHP-Syntax, es handelt sich jedoch um eine allgemeine Aufgabenstellung.
Ich habe eine Klasse "Cache". Im Konstruktor kann ich den Cache aktivieren oder deaktivieren:

Code:
$cache = new cache(true); // aktiviert
$cache = new cache(false); // deaktiviert
Diesen boolschen Wert würde ich gerne aus einer Konfigurationstabelle in der Datenbank auslesen. Die Schwierigkeit ist jedoch, dass ich die Konfigurationsdaten cache, da sich diese nur selten ändern:

Code:
$config_data = $cache->get_data('config');
Das heißt, für die Konfigurationsdaten muss eine Instanz der Cache-Klasse existieren. Allerdings brauche ich zum Erstellen der Instanz wiederum die Konfigurationswerte.

Wie löst man das?

Grüße, Matze
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Abhängigkeit von Klassen unmöglich?

  Alt 11. Mär 2010, 13:57
Ist die Cache-Konfiguration tatsächluch Instanz-spezifisch? Wenn nicht, dann ist das ganz einfach über statische Methoden / Felder lösbar...
http://php.net/manual/de/language.oop5.static.php

Allerdings teilen dann natürlich alle Instanzen von Cache die selbe Konfiguration. Aber ich schätze mal mehr als einen cache gibt es sowieso nicht?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Abhängigkeit von Klassen unmöglich?

  Alt 11. Mär 2010, 14:17
Richtig, es gibt nur eine Instanz, aber ich wüsste nicht, in wie weit mir das helfen soll.

So oder so muss ich dem Cache den Wert aus der (ggf. gecachten) Konfiguration vorgeben.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#4

Re: Abhängigkeit von Klassen unmöglich?

  Alt 11. Mär 2010, 14:26
Du kannst jederzeit nach dem Erstellen der Klasse und dem Bemerken der Tatsache dass Du den anderen Konstruktor gebraucht hättest, die neue Klasse ein zweites mal richtig erzeugen und die Werte rüberkopieren und dann den Instanzverweis umbiegen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Abhängigkeit von Klassen unmöglich?

  Alt 11. Mär 2010, 14:32
Ich glaube, was ich gerne hätte, geht einfach nicht.
Es würde gehen, wenn ich sage, dass die Konfigurationsdaten immer oder nie aus dem Cache kommen. Dann könnte ich danach auch den Konstruktor neu aufrufen mit dem entsprechenden Wert.

Ich hätte es gerne so:

Wert aus der Konfiguration lesen => wenn dort Cache deaktiviert, Konfiguration aus der Datenbank holen, sonst aus dem Cache
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#6

Re: Abhängigkeit von Klassen unmöglich?

  Alt 11. Mär 2010, 15:02
Cache ist doch eine selbst erstellte Klasse. Warum kann diese Klasse sich den Wert zum cachen nicht selbst besorgen? Das würde sie zwar dann jedes mal machen, aber das wird wohl nicht das Problem sein.
Zitat von Matze:
Ich hätte es gerne so:

Wert aus der Konfiguration lesen => wenn dort Cache deaktiviert, Konfiguration aus der Datenbank holen, sonst aus dem Cache
Warum nicht? Konfiguration lesen und dann Cache aufbauen/öffnen. Ich würde hier auch bei einer Datenbank es so lösen, dass ich zuerst auslese, ob gecacht werden soll und dann die DB-Verbindung erweitere (also dem Cache-Objekt zuführe).

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#7

Re: Abhängigkeit von Klassen unmöglich?

  Alt 11. Mär 2010, 15:04
Zitat von Matze:
Richtig, es gibt nur eine Instanz, aber ich wüsste nicht, in wie weit mir das helfen soll.
So oder so muss ich dem Cache den Wert aus der (ggf. gecachten) Konfiguration vorgeben.
Ich weiß ja nun nicht wie genau dein Cache funktioniert. Ich dachte daran, den Konfigurationsteil eben statisch zu cachen. Dies kannst du ja machen, ohne eine Instanz vom Cache zu haben. Beim Instanzieren kannst du auf diese statischen Werte zurückgreifen. Aber vielleicht verstehe ich auch einfach das Problem nicht ganz...
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Abhängigkeit von Klassen unmöglich?

  Alt 11. Mär 2010, 15:27
Zitat von rollstuhlfahrer:
Warum nicht? Konfiguration lesen und dann Cache aufbauen/öffnen. Ich würde hier auch bei einer Datenbank es so lösen, dass ich zuerst auslese, ob gecacht werden soll und dann die DB-Verbindung erweitere (also dem Cache-Objekt zuführe).
Sinn der gecachten Konfiguration ist, dass ich keine Datenbankverbindung benötige.
Sonst kann ich die gleich aus der Datenbank auslesen (immer), wenn ich zum Auslesen eine Verbindung brauche.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#9

Re: Abhängigkeit von Klassen unmöglich?

  Alt 11. Mär 2010, 16:09
Vielleicht fehlt mir grad ein wenig Hintergrundwissen zu PHP, aber ich dachte, wenn ein PHP-Request durch ist, dann wird der Handler aus Performancegründen entladen und damit sowieso alle Klassen aufgeräumt?
Sowas wir einen Workerprozess der permanent solche Singleton-Instanzen im Speicher hält gibt es doch da gar nicht, oder etwa doch?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Abhängigkeit von Klassen unmöglich?

  Alt 11. Mär 2010, 16:31
Nicht, dass ich wüsste. Aber davon habe ich doch auch gar nichts geschrieben.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz