Wie empfiehlt sich die Verwendung der Sperre in geerbten Klassen?

9

Ich möchte wissen, ob eine Klasse von einer anderen erbt. Ist es besser, wenn die Klassen ein Sperrobjekt teilen, das in der Basisklasse definiert ist oder wenn auf jeder Vererbungsebene ein Sperrobjekt definiert ist.

Ein sehr einfaches Beispiel für ein Sperrobjekt auf jeder Ebene der Klasse

%Vor%

Ein sehr einfaches Beispiel für ein gemeinsames Sperrobjekt

%Vor%

Welches Beispiel ist die bevorzugte Methode, um das Sperren in einer geerbten Klasse zu verwalten?

    
JDMX 21.05.2010, 15:01
quelle

2 Antworten

11

Sie finden Ihre zweite Option ziemlich häufig in .NET Framework, verwenden jedoch eine Eigenschaft anstelle eines Felds (z. B. CommunicationObject.ThisLock-Eigenschaft ):

%Vor%

und

%Vor%     
dtb 21.05.2010, 15:08
quelle
4

Wie viele Instanzen eines Sperrobjekts Sie haben, sollte der Anzahl der Objekte entsprechen, auf die Sie den Zugriff steuern möchten. Wenn sich alle Unterklassen dieselbe Ressource teilen, sollte es ein einzelnes Sperrobjekt geben, z. B. ein Feld / eine Eigenschaft in der Basisklasse.

    
Polyfun 21.05.2010 15:36
quelle

Tags und Links