Wie erkennt man, ob sich eine Variable geändert hat?

8

Ich habe festgestellt, dass ich bestimmte Dinge in meinen Programmen nur dann tun möchte, wenn sich eine Variable geändert hat. Ich habe bisher so etwas gemacht:

%Vor%

Gibt es einen besseren / einfacheren Weg, dies zu tun?

    
Amplify91 23.03.2011, 06:18
quelle

6 Antworten

5

Da Sie nur dann eine Aktion finden und ausführen wollen, wenn sich der Wert ändert, würde ich mit setXXX gehen, zum Beispiel:

%Vor%     
james_bond 23.03.2011, 06:33
quelle
4

Sie können den Getter / Setter mit einem Dirty-Bit verwenden, das jedem Feld zugeordnet ist. Markieren Sie es als fehlerhaft, wenn der Wert über Setter geändert wird, und erzwingen Sie den Benutzer, Setter zu verwenden

    
Jigar Joshi 23.03.2011 06:25
quelle
4

Ein anderer Weg ist die Verwendung von AOP, um das Ändern von Feldern abzufangen, zum Beispiel AspectJ, Sie können sich ein Ссылка

    
secmask 23.03.2011 07:31
quelle
2

Beispiel:

Erstellen Sie eine Variable mit demselben Namen mit einer Nummer.

%Vor%

hoffe diese Hilfe.

    
Santiago Perez 15.06.2011 15:55
quelle
0

Sie können das Flag-Konzept auch verwenden, wenn Sie den Wert von x ändern. true für eine boolesche Variable zuweisen. Boolean mit dem Standardwert als false beibehalten. überprüfen Sie auf diese Weise.

Dieser Weg ist besser, als Getter und Setter in der Basis der Performance zu haben, und keinen reduktiven Code von zwei Methoden Getter und Setter zu haben.

    
developer 23.03.2011 06:32
quelle
0

Wenn Sie mehrere Threads verwenden, können Sie einen Objektmonitor erstellen und darauf warten, dass das geänderte Objekt alle blockierten Threads aufweckt.

In etwa so:

%Vor%     
jeverest 23.03.2011 06:43
quelle

Tags und Links