代码之家  ›  专栏  ›  技术社区  ›  Manoj Perumarath

在颤振中保持所有常数的最佳实践是什么?

  •  0
  • Manoj Perumarath  · 技术社区  · 5 年前

    最好的编程实践是什么

    在颤振中创建一个常量类

    保留所有应用程序常量以便于参考。我知道有 const dart中用于创建常量字段的关键字,但是否可以使用 static 与const一起使用,或者它会在运行时产生内存问题。

    class Constants {
    static const String SUCCESS_MESSAGE=" You will be contacted by us very soon.";
    }
    
    2 回复  |  直到 5 年前
        1
  •  2
  •   Rémi Rousselet    5 年前

    虽然没有技术问题 static const 在架构上,您可能希望以不同的方式进行。

    颤动倾向于 拥有任何全局/静态变量并使用继承的小部件。

    这意味着你可以写:

    class MyConstants extends InheritedWidget {
      static MyConstants of(BuildContext context) => context.inheritFromWidgetOfExactType(MyConstants);
    
      const MyConstants({Widget child, Key key}): super(key: key, child: child);
    
      final String successMessage = 'Some message';
    
      @override
      bool updateShouldNotify() => false;
    }
    

    然后插入应用程序的根目录:

    void main() {
      runApp(
        MyConstants(
          child: MyApp(),
        ),
      );
    }
    

    并以此方式使用:

    @override
    Widget build(BuilContext context) {
      return Text(MyConstants.of(context).successMessage);
    }
    

    这比 静态常量 但是有很多优点:

    • 使用热重新加载
    • 容易测试和模仿
    • 在不重写整个应用程序的情况下,可以用比常量更动态的内容替换。

    但同时它:

    1. 不会消耗更多的内存(继承的小部件通常创建一次)
    2. 是否执行(获取继承的小部件为O(1))
        2
  •  2
  •   Günter Zöchbauer    5 年前

    这完全取决于你。
    使用静电没有缺点。
    事实上 const 类中的字段是必需的。

    推荐文章