我知道函数独立于任何类,静态方法附加到类。看起来他们俩都取得了同样的成就。这引出了以下问题:它们的优点和缺点是什么?
我想创建一组用于离线 PIN 配置的函数,例如setPin, changePin, verifyPin。我是否必须将它们作为静态方法包装在类中,或者我可以将它们创建为 Dart 文件中的函数吗?
静态方法与函数相比,没有明确的“优点和缺点”。
正如您正确指出的那样,唯一的区别是静态成员连接到类。
class A {
static bool b() => false;
}
bool c() => true;
Run Code Online (Sandbox Code Playgroud)
这里唯一的区别是您需要通过访问静态成员A.b并且c可以直接访问。
静态方法甚至不能继承,这意味着class B extends A {}将不允许您使用B.b,因为它是的b静态成员。 A
话虽如此,@jamesdlin指出了一篇关于编写良好的 Dart 设计的文章。本文描述了您应该避免创建仅包含静态成员的类,并称其为糟糕的设计,即不是惯用的 Dart:
在惯用的 Dart 中,类定义了对象的种类。从未实例化的类型是一种代码味道。
回到您的问题,如果您的函数不是根据基于 Dart 团队文章的惯用 Dart 设计的对象的一部分,您可能应该将它们创建为顶级函数。
但是,您可能会考虑更改存储“PIN 配置”的方式,因为这听起来将此信息存储为对象是理想的选择。
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |