Monitorowanie właściwości
Monitorowanie zostało oparte na wzorcu projektowym Observer, i rolę obserwatora pełni klasa PropertyMonitor
. Za każdym razem, kiedy monitorowana właściwość zmienia swoją wartość, wywoływana jest metoda isActive
reguły sprawdzającej, czy należy powiadamiać monitor, a następnie wywoływana jest metoda propertyChanged(Property, Object)
monitora. Metoda ta odczytuje zapamiętaną starą wartość właściwości, konstruuje obiekt zdarzenia (klasy PropertyEvent
), i wywołuje abstrakcyjną metodę propertyChanged(PropertyEvent)
, która musi zostad zdefiniowana przez konkretny monitor.
Cały ciąg akcji związanych ze zmianą wartości właściwości jest przedstawiony na poniższym diagramie:
Strategie monitorowania wartości pojedynczej właściwości
Monitory są powiadamiane zawsze, kiedy właściwości zostanie przypisana nowa wartość, jednak możliwe jest także
poinformowanie monitorów o zmianach wewnątrz obiektu będącego wartością właściwości. Decyzja o tym, kiedy należy
powiadomić monitory, zależy powiązanej z właściwością strategii monitorowania. W platformie jAgE dostępne są trzy
wbudowane strategie, przedstawione na poniższym diagramie:
Pierwsza ze strategii, NoMonitoringStrategy
, nie uwzględnia żadnych zmian wewnątrz wartości, co powoduje, że
monitory są powiadamiane tylko w przypadku przypisania właściwości nowej wartości.
Druga strategia, ChangesNotifierMonitoringStrategy
, jest przeznaczona dla właściwości, których typ implementuje
interfejs IChangesNotifier
. Strategia ta podpina do wartości właściwości swój monitor (implementujący interfejs
IChangesNotifierMonitor
), i za każdym razem, kiedy ten monitor jest powiadamiany o zmianie wewnątrz wartości,
powiadamiane są także monitory podłączone do całej właściwości.
Attachments:


