Zaimplementuj wzorzec obserwatora w Dart

Chciałbym zaimplementować wzorzec obserwatora w Dart, ale nie jestem pewien, jak się do tego zabrać.

Powiedzmy, że mam klasę:

class MyClass {

  String observed_field;

}

Teraz, kiedy zmieniam pole, chciałbym wydrukować ciąg „Obserwowane pole zmieniony” w konsoli. Całkiem proste do zrobienia z ustawieniem użytkownika:

class MyClass {

  String _observed_field;

  get observed_field    => _observed_field;
  set observed_field(v) {
    _observed_field = v;
    print("observed_field changed");
  }

}

Oczywiście, jeśli nie mam jednego, ale wiele z tych pól, nie chciałbym tworzyć tych wszystkich getterów i setterów. Oczywistym rozwiązaniem teoretycznym jest dynamiczne dodawanie ich do klasy z czymś podobnym (nie jest to działający kod, tylko przykład tego, jak chciałbym wyglądać):

class MyClass

  String  _observeable_field;
  String  _observeable_field_2;

  observe(#observeable_field, #observeable_field_2);

end

Czy to możliwe? Dodatkowo super byłoby nie mieć tych pól zdefiniowanych powyżejobserve() zadzwoń, ale napisz coś w stylu:

observe(String: #_observeable_field, String: #_observeable_field_2);

Aby te pola były deklarowane automatycznie.

questionAnswers(1)

yourAnswerToTheQuestion