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:
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).
Tags und Links python list sequence mutable observer-pattern