我在不同的dart项目之间共享一些模型类。
首先,我遵循dart库约定执行以下操作:
在导入通用lib / package的项目/软件包中:
dependencies:
mycommon:
path: ../mycommon
import 'package:mycommon/models.dart';
常见的库/软件包:
name: mycommon
lib / src / model / model_1.dart
lib / src / model / model_2.dart
...
lib / src / model / model_50.dart
lib / models.dart:
library mycommon;
export 'src/model/model_1.dart';
export 'src/model/model_2.dart';
...
export 'src/model/model_50.dart';
将普通库作为普通软件包处理
在导入通用lib / package的项目/软件包中:
dependencies:
mycommon:
path: ../mycommon
import 'package:mycommon/model/model_1.dart';
常见的库/软件包:
name: mycommon
lib / model / model_1.dart (无库关键字)
lib / model / model_2.dart
...
lib / model / model_50.dart
我找不到使用选项2 的任何地方。这就是我自己想出的。
我的问题很简单,是否建议使用选项2 方法?我更喜欢使用选项2 ,因为我可以导入真正想要的类而不是全部。而且大多数时候,每个dart文件只需要一个类模型。
答案 0 :(得分:1)
lib/src/model/model_a.class
不是您应该用于Dart代码的文件名。无论文件具有哪种类型的Dart代码,文件都应为lib/src/model/model_a.dart
。
使用lib/model/model_a.dart
并导入为package:mycommon/model/model_a.dart
是完全可以的。 通常的情况是,发布的程序包包含导入的单个库,然后在lib/src
中提供了实现细节,但这不是必需的。如果有一些实现本身很有用,则可以将它们放在lib/src
之外并直接导入。
如果有许多这样的文件,或者通常需要一起导入一堆文件,我建议不要遵循该模式。对于每个单独的模型,import 'package:mycommon/models.dart';
会比连续数十次导入要好得多。 Dart不是Java,并且您导入的每个类都不必位于其自己的库中。