Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Vererbung (https://www.delphipraxis.net/56272-vererbung.html)

ozz 4. Nov 2005 14:14

Re: Vererbung
 
Ich habe das Problem jetzt erkannt. :bounce2:
Ursprünglich habe das Problem so gemein, wie es r2c2 verstanden hat. Die Lösung und die kleinen Beispiele haben mir sehr geholfen. Manchmal ist man etwas :wall:
Ich danke Euch ganz herzlich r2c2,sh17,Der_Unwissende.

Der_Unwissende 4. Nov 2005 15:16

Re: Vererbung
 
Zitat:

Zitat von r2c2
ich habe nämlich folgenden Satz etwas anders anders interprätiert, als sh17:
Zitat:

Zitat von ozz
Wie kann ich es machen, das alle Instanzen (aller Arten von Nachfahren) die gleichen Verbindungsdaten verwenden, OHNE das ich es jedesmal an alle übergeben muß.

Das heißt doch, dass alle Nachfahren die selben Daten verwenden sollen. Und die sollen nicht immer einzeln festgelegt werden müssen. Dann ist es doch am einfachsten man hat eine Klasse, der man die Daten übergibt und die verwaltet die Verbindung zur Datenbank. Die anderen müssen sich darum also gar nicht mehr kümmern...

Dann würdest du aber mit deinem Code in jeder TURL eine eigene Connection anlegen. Vielleicht sehe ich auch hier wieder was falsch und das wäre dann Absicht, aber der Vollständigkeit halber sei noch auf das Singleton-Pattern verwiesen. Das garantiert dir dann, dass du wirklich immer eine globale Instanz von der Klasse bekommst:

Delphi-Quellcode:
type
  TExampleClass = class(TObject)
    private
      // Fields
    protected
      // Fields
      constructor create;
    public
      // Fields
      class function getInstance : TExampleClass;
  end;

implementation

var ExampleClassInstance : TExampleClass;

class function TExampleClass.getInstance : TExampleClass;
begin
  if not assigned(ExampleClassInstance) then
    begin
      ExampleClassInstance := TExampleClass.Create;
    end;
  result := ExampleClassInstance;
end;
Ist natürlich nicht vollständig, man sollte tunlichst drauf achten, zu zählen wieviele Verweise es gibt und dafür sorgen, dass wenn es keinen mehr gibt, die Instanz auch wieder freigegeben wird. Das fehlt hier natürlich komplett, aber über die getInstance kann man sich so immer das eine globale Objekt holen, es wäre bei jedem Aufruf das einzigste.

Gruß Der Unwissende

r2c2 4. Nov 2005 19:06

Re: Vererbung
 
Zitat:

Zitat von Der_Unwissende
Dann würdest du aber mit deinem Code in jeder TURL eine eigene Connection anlegen. Vielleicht sehe ich auch hier wieder was falsch und das wäre dann Absicht, aber der Vollständigkeit halber sei noch auf das Singleton-Pattern verwiesen. Das garantiert dir dann, dass du wirklich immer eine globale Instanz von der Klasse bekommst:

Sicher? Ich speichere nur ne Referenz auf ne DBConnection-Klasse, die man durchaus ans Singleton implementieren kann. Wo wird da ne eigene Connection angelegt?

mfg

Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 Uhr.
Seite 2 von 2     12   

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