我只是用Flutter的BLoC架构弄湿了自己。在这里,我希望创建一个Bloc
类,这将帮助我转换流数据形式的用户输入。为此,假设我首先创建了一个名为Bloc
的{{1}}类的实例,然后
email
email.emailController.sink.add(some_string)
email.streamEmail(some_string)
向流中添加字符串输入
代码段:
email.streamEmail(some_string)
//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);
}
我了解到,就代码的可读性而言,使用代码段1或2是更好的方法。 我知道代码段1和2只是做同一件事的2种不同方式。但是我不清楚片段2通过使用getter方法带来的差异。
字母和设置器是特殊的方法,它们提供对对象属性的读写访问。
目前,我对getter的唯一了解是它们代表了在类中定义方法的另一种方法。所以,确切地说,我的问题是:
答案 0 :(得分:1)
使用吸气剂方法导致增强功能或应用程序下降。性能?
否,使用getter / setter代替方法不会影响性能。
何时以及为什么我应该使用代码段2类型类定义而不是代码段1?
何时使用getter / setter是有关口味的问题,与其他开发人员相比,某些开发人员更可能使用它们。我猜一般的设计目标应该是:getter / setter的行为类似于对象的常规属性,因此,除了获取/设置属性之外,不应做出任何其他未知行为。 (例如,获取对象的属性将最终将某些文件保存到文件系统中。)
在您的示例中,我将使用代码段1(可能使用不同的方法名称),因为您的示例并不是使用属性的好用例。片段2似乎是强迫使用吸气剂的明智尝试,由于吸气剂最终返回功能,最终变得有点怪异。
但是,这又是一个关于品味的问题,我敢肯定,有些开发人员会使用代码段2。