【发布时间】:2020-02-16 15:21:11
【问题描述】:
我刚刚接触到 Flutter 的 BLoC 架构。在这里,我希望创建一个Bloc 类,它将帮助我将用户输入转换为流数据的形式。要完成这项任务,假设首先我创建了一个名为 email 的 Bloc 类实例,然后,
- 使用sn-p 0 然后调用
email.emailController.sink.add(some_string) - 或者,使用sn-p 1 然后调用
email.streamEmail(some_string) - 或者,使用 sn -p 2 代码然后调用
email.streamEmail(some_string)
将字符串输入添加到流中
代码sn-ps:
//Snippet 0 : w/o any `method`
class Bloc{
final emailController = StreamController<String>();
}
//Snippet 1 : using regular 'method'
class Bloc{
final emailController = StreamController<String>();
void streamEmail(String value) => emailController.sink.add(value);
}
//Snippet 2 : using 'get' based 'method'
class Bloc{
final emailController = StreamController<String>();
Function(String) get streamEmail => emailController.sink.add;
}
我了解到,就代码可读性而言,使用 sn-p 1 或 2 会更好。 我知道 sn-p 1& 2 只是做同一件事的两种不同方式。但是,我不清楚 sn-p 2 通过使用 getter 方法带来的差异。
来自A tour of the Dart language,
Getter 和 setter 是提供对对象属性的读写访问权限的特殊方法。
目前,我对 getter 的唯一了解是它们代表了在类中定义方法的另一种方法。所以,准确地说,我的问题是:
- 使用 getter 方法会导致增强或应用内删除。性能?
- 何时以及为什么应该使用 sn-p 2 类型的类定义而不是 sn-p 1?
【问题讨论】:
标签: flutter dart getter-setter