首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >省里的公共包而不是图书馆?

省里的公共包而不是图书馆?
EN

Stack Overflow用户
提问于 2019-04-11 14:28:19
回答 1查看 393关注 0票数 2

我在不同的省道项目之间共享了一些模型类。

备选案文1

首先,我遵循了省道图书馆的惯例来做以下工作:

导入通用lib/包的项目/包中的

  • pubspec.yaml:
代码语言:javascript
复制
dependencies:
  mycommon:
    path: ../mycommon
  • some_class.dart:
代码语言:javascript
复制
import 'package:mycommon/models.dart';

公共库/包:

  • pubspec.yaml
代码语言:javascript
复制
name: mycommon
  • lib/src/model/model_1
  • lib/src/model/model_2.2.dart
  • ..。
  • lib/src/model/model_50
  • lib/models.dart:
代码语言:javascript
复制
library mycommon;

export 'src/model/model_1.dart';
export 'src/model/model_2.dart';
...
export 'src/model/model_50.dart';

选项2

将公共库视为普通包

导入通用lib/包的项目/包中的

  • pubspec.yaml:
代码语言:javascript
复制
dependencies:
  mycommon:
    path: ../mycommon
  • some_class.dart:
代码语言:javascript
复制
import 'package:mycommon/model/model_1.dart';

公共库/包:

  • pubspec.yaml
代码语言:javascript
复制
name: mycommon
  • lib/model/model_1.1.dart(没有库关键字)
  • lib/型号/型号2.飞镖
  • ..。
  • lib/型号/型号50.飞镖

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

我的问题是,是否推荐使用选项2方式?我更喜欢使用选项2,因为我只需要导入实际需要的类,而不是所有东西。而且大多数情况下,我只需要一个类模型每省道文件。

EN

回答 1

Stack Overflow用户

发布于 2019-04-11 22:39:47

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,您导入的每个类都不需要在它自己的库中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55634928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档