简介

Library是dart用来组织代码的一种十分有用的形式,通过定义不同的Library,能够将十分有用的dart代码进行封装,从而提供给其余的我的项目应用。尽管咱们能够自在应用import或者export来对library进行导入和导入。然而什么样的用法才是最合适的用法呢? 一起来看看吧。

应用part和part of

尽管很多程序员厌恶应用part,然而dart的确提供了part这种性能用来将一个大的lib拆分成多个小的文件。

没错,和part的中文含意一样,part就是将lib文件进行拆分用的。

part of示意以后文件是另外一个主文件的一部分。part示意主文件是由援用的文件组成的。

咱们举个例子,如果当初有三个文件student_age.dart,student_name.dart和student.dart.

其中后面两个文件是前面一个文件的组成部分。

student_age.dart:

part of student;int getAge(){    return 18;}

student_name.dart:

part of student;String getName(){    return "jack";}

student.dart:

library student;part 'some/other/student_age.dart';part 'some/other/student_name.dart';

下面的代码有什么问题呢?

下面代码的问题在于对于student_age.dart来说,外面的part of只是指定了所属的library,然而咱们读起来会一头雾水,因为不晓得具体的library到底在什么中央。

所以应该这样写:

part of '../../student.dart';

src中的文件

默认状况下lib目录下的src文件只是package外部应用的,不容许被内部的我的项目所调用。

所以咱们肯定不要间接引入lib包中的src文件。

package中的lib文件

对于package来说,lib中的文件是能够被导出的文件,然而咱们在引入package的时候最好不要应用绝对路径或者相对路径间接导入lib中的文件。

而是须要应用import 'package:'.

举个例子,如果咱们有上面构造的library文件:

my_package└─ lib   └─ api.dart   test   └─ api_test.dart

api.dart就是咱们要导出的文件。如果咱们在api_test.dart中须要援用api.dart,则能够有上面两种形式:

import 'package:my_package/api.dart';

和:

import '../lib/api.dart';

其中下面一种形式是官网举荐的形式,为什么不应用上面一种形式呢?这是因为相对路径的形式只能在包外部应用。并且dart官网不倡议将lib放在援用门路中,如果要援用lib外部的文件, 肯定要应用package:。

当然,如果是package外部的援用,则优先应用相对路径,比方:

my_package└─ lib   ├─ src   │  └─ stuff.dart   │  └─ utils.dart   └─ api.dart   test   │─ api_test.dart   └─ test_utils.dart

那么对应lib/api.dart来说,能够这样援用:

import 'src/stuff.dart';import 'src/utils.dart';

对于utils.dart来说,能够这样援用:

import '../api.dart';import 'stuff.dart';

对于test/api_test.dart来说,能够这样援用:

import 'package:my_package/api.dart'; import 'test_utils.dart';

总之,不要在import的门路中呈现lib。

总结

以上就是dart中Library编写最佳实际。

本文已收录于 http://www.flydean.com/28-dart-libraries-effective/

最艰深的解读,最粗浅的干货,最简洁的教程,泛滥你不晓得的小技巧等你来发现!

欢送关注我的公众号:「程序那些事」,懂技术,更懂你!