Dart模型库文件位置规划及私有访问配置咨询
解决方案
一、避免误导入单个模型文件
1. 用src子目录隔离内部实现(推荐)
把model1.dart、model2.dart移到/lib/models/src/子目录下,调整文件引用:
- 修改
models.dart的part路径:
// /lib/models/models.dart library; part 'src/model1.dart'; part 'src/model2.dart';
- 同步修改模型文件的
part of路径:
// /lib/models/src/model1.dart part of '../models.dart';
这种结构下,外部代码只能通过导入package:你的项目名/models/models.dart访问模型,而src目录是约定俗成的内部实现目录,开发者不会主动去导入里面的文件,从根源避免误导入。
2. 改用export替代part(更简洁)
如果不需要用library/part的方式,也可以直接用export来组织入口文件:
// /lib/models/models.dart export 'src/model1.dart'; export 'src/model2.dart';
这种方式不需要写library和part of,外部同样只能通过models.dart导入模型,单个模型文件即便被误导入,类依然可访问,但目录结构已经明确引导了正确的导入路径。
二、优化models.dart的位置
完全不用让它夹在模型文件中间,两种方法可选:
1. 配合src目录结构(最优)
按上面的方案把内部文件放到src,models.dart作为入口放在/lib/models/根目录,最终结构如下:
/lib /models models.dart /src model1.dart model2.dart
这种结构清晰分离了对外接口和内部实现,models.dart的位置自然合理,不会显得杂乱。
2. 文件名前缀排序(快速技巧)
如果不想调整目录,给models.dart加前缀,比如_models.dart或00_models.dart,按字母排序会自动排在最前面,避免夹在model1.dart和model2.dart之间。不过这种方式只是排序技巧,不如src目录规范。
内容的提问来源于stack exchange,提问作者Rares Dima
相关产品推荐
相关产品推荐

