interface - 使用 Dart/Flutter 导入 Umbrella

标签 interface dart package flutter umbrella

我正在为 Dart (Flutter) 开发一个插件。我已将源代码拆分成许多不同的实现文件,以保持整洁并避免拥有一个庞大的文件。

问题是,我不希望用户每次想使用我的包时都必须导入大量源文件。

在 flutter 或 Dart 本身中,有什么方法可以声明某种伞形接口(interface)吗?

最佳答案

在您的插件中,您有一个lib 文件夹。创建一个 lib/src 子文件夹并将您的大部分实现文件移到那里。通常只在 lib 中留下一个文件,例如someplugin.dart.

在那里你可以有任何顶级类或函数,但这是你使用 export 指令包含实现源文件的地方。

这是来自 google_sign_in.dart 的 google_sign_in 插件的示例:

import 'dart:async';
import 'dart:ui' show hashValues;

import 'package:flutter/services.dart' show MethodChannel;
import 'package:meta/meta.dart' show visibleForTesting;

import 'src/common.dart'; // this import is only required if used by some top level
                          // class lower down this file

export 'src/common.dart'; // this export means that your plugin's users don't need
                          // to import it themselves

关于interface - 使用 Dart/Flutter 导入 Umbrella,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51433543/

相关文章:

Java:接口(interface)是比静态类更好的面向对象设计吗?

haskell - 标准 Haskell 类型类应遵守哪些法律?

flutter - 元素类型 'List<Answer>'无法分配给列表类型 'Widget'

java - "javax"是不是非法(保留)包名?

java - 如何使用javac编译java包结构

object - golang中的实现接口(interface)

nhibernate - 多态 NHibernate 映射

flutter - 将屏幕带到导航器的顶部

带有 Riverpod 的 Flutter 导航栏

r - 在 mac 上为 windows 构建 R 包