想象一下以下伪集团:
class BlocA {
BlocA() {
//some initialization
}
Stream a;
Stream b;
Stream c;
}
class BlocB {
BlocB() {
//some initialization
}
Stream d; //dependant on a piece of data that resides in BlocA
}
将信息从一个集团传递到另一个集团的最干净方法是什么,如何处理这种依赖性?
答案 0 :(得分:2)
您可以将BlocA作为参数注入BlocB。
class BlocA {
Stream a;
}
class BlocB {
final BlocA _a;
BlocB(this._a);
}
或者,您可以仅传递所需的流,而不传递整个块。但是,只有在流的数量非常有限的情况下才能这样做。
然后,您可以自由地映射/通过管道传输来自A的流,以将另一流公开给B。
class BlocB {
Stream b;
BlocB(BlocA blocA) {
b = blocA.a.map((a) => 42).asBroadcastStream();
}
}