Dart中的常用包而不是库?

问题描述 投票:2回答:1

我有一些在不同的飞镖项目之间共享的模型类。

Option 1

首先,我按照dart库约定执行以下操作:

在导入公共lib /包的项目/包中:

  • pubspec.yaml:
dependencies:
  mycommon:
    path: ../mycommon
  • some_class.dart:
import 'package:mycommon/models.dart';

常见的lib /包:

  • pubspec.yaml
name: mycommon
  • LIB / src目录/模型/ model_1.dart
  • LIB / src目录/模型/ model_2.dart
  • ...
  • LIB / src目录/模型/ 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';

Option 2

将公共库视为普通包

在导入公共lib /包的项目/包中:

  • pubspec.yaml:
dependencies:
  mycommon:
    path: ../mycommon
  • some_class.dart:
import 'package:mycommon/model/model_1.dart';

常见的lib /包:

  • pubspec.yaml
name: mycommon
  • lib / model / model_1.dart(没有库关键字)
  • LIB /模型/ model_2.dart
  • ...
  • LIB /模型/ model_50.dart

我还没有找到任何使用选项2的地方。这就是我自己提出的。

我的问题很简单,如果推荐选项2方式?我更喜欢使用选项2,因为我可以导入我真正想要的类而不是所有类。大多数时候,每个dart文件只需要一个类模型。

dart
1个回答
1
投票

lib/src/model/model_a.class不是您应该用于Dart代码的文件名。该文件应该是lib/src/model/model_a.dart,无论它具有什么类型的Dart代码。

使用lib/model/model_a.dart并导入为package:mycommon/model/model_a.dart完全没问题。通常的情况是发布包含一个导入的库,然后在lib/src中实现详细信息,但这不是必需的。如果有一些实现是有用的,将它们放在lib/src之外并直接导入就可以了。

如果有很多这样的文件,或者如果通常需要将一堆文件一起导入,我建议不要遵循该模式。对于每个型号,import 'package:mycommon/models.dart';将比连续几十次进口更好。 Dart不是Java,你导入的每个类都不需要在它自己的库中。

© www.soinside.com 2019 - 2024. All rights reserved.