我想在DART中实现一个观察者模式,但是我不确定如何go 做.
假设我有一门课:
class MyClass {
String observed_field;
}
现在,每当我更改字段时,我都希望将"EATTED_FIELD CHANGED"字符串打印到控制台.使用自定义setter可以非常简单地完成以下操作:
class MyClass {
String _observed_field;
get observed_field => _observed_field;
set observed_field(v) {
_observed_field = v;
print("observed_field changed");
}
}
现在,当然,如果我没有一个,但有很多这样的字段,我不想创建所有这些getter和setter.一个显而易见的理论解决方案是,用这样的方式将它们动态添加到类中(不是工作代码,只是我希望它看起来如何的一个示例):
class MyClass
String _observeable_field;
String _observeable_field_2;
observe(#observeable_field, #observeable_field_2);
end
Is it even possible?此外,如果不在observe()
调用之上定义这些字段,而是编写如下内容,那将是非常棒的:
observe(String: #_observeable_field, String: #_observeable_field_2);
以便自动声明这些字段.