Ist es möglich, eine Liste (oder änderbare Sequenz) zu überwachen, wenn ein Mitglied der Liste geändert wird?

8

Angenommen, ich habe einen sehr einfachen Datentyp:

%Vor%

Und ich eine spezielle Art von Liste, um den Datentyp zu speichern:

%Vor%

Und ich speichere sie:

%Vor%

Gibt es eine Möglichkeit für das Objekt SimpleList , zu wissen, wann sich eine der Eigenschaften seiner Mitglieder ändert? Zum Beispiel, wie bekomme ich simple_list , um self.update_useful_property_of_list() auszuführen, wenn so etwas passiert:

%Vor%     
drs 16.12.2014, 20:28
quelle

1 Antwort

4

Wie in den Kommentaren erwähnt, suchen Sie nach dem Observer Designmuster . Einfachste Möglichkeit, es in Ihrem Beispiel zu tun:

%Vor%

und:

%Vor%

Da Sie Ihre Eigenschaft "property" genannt haben, ist es schwierig, hier eine niedrige Kopplung zu demonstrieren :) Ich habe die Methode simpleObjectPropertyChanged wegen der Übersichtlichkeit aufgerufen, aber in der Tat muss SimpleList nicht wissen, dass sie speichert SimpleObject Instanzen - es muss nur wissen, dass es beobachtbare Instanzen sind. In ähnlicher Weise weiß SimpleObject nichts über SimpleList - es weiß nur etwas über eine Klasse, die beobachten muss ihren Zustand (ein Beobachter - daher der Name des Musters).

    
BartoszKP 16.12.2014, 20:46
quelle