首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减少Dart应用程序中的“部件”数量

减少Dart应用程序中的“部件”数量
EN

Stack Overflow用户
提问于 2015-08-01 03:59:56
回答 2查看 85关注 0票数 2

我有一个相当大的Dart应用程序,它使用partpart of,所以我不必使用相对import。然而,应用程序在入口点文件中可能有这样的内容:

代码语言:javascript
复制
part 'file1.dart';
part 'file2.dart';
part 'file3.dart';
part 'some_sub_dir/file1.dart';
part 'some_sub_dir/file2.dart';
part 'some_sub_dir/file3.dart';
part 'some_sub_dir/file4.dart';
part 'some_sub_dir/file5.dart';
part 'some_sub_dir/file6.dart';
...

据我所知,我的IDE (WebStorm)在创建新类时不会自动添加part语句。有什么办法可以避免我不得不使用这么多part?如果不是,每次添加新parts的过程是否可以自动化?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-03 08:54:25

我尽我所能理解你的问题,我将根据我在省道的经验来回答。

据我所知,您正在尝试将所有(或很多)项目文件作为一个库的一部分保存。这是错误的观念。在Dart图书馆不是什么大事。以下是一些如何组织你的文件的建议。

  1. 不要试图将许多文件作为一个库的一部分保存。相反,将每个文件保持为分隔的库。
  2. 您可以在一个文件中保留几个类。但是,要确保类能一起工作,只有一个想法。
  3. 只有当一个库有很多类或一个类太大时,才能将一个库拆分到几个部件文件中。但是,请确保所有这些文件都应该放在一个库中。
  4. 如果不知道如何组合库中的类,则将每个类保存在单独的库中。过了几天,你就会明白哪些课是一起玩的。
  5. 如果一个库中的一个类不仅在库中而且在其他库中都有用法,那么就把它分开。
  6. 将部件与主库文件放在同一个文件夹中。
  7. 如果库有部分,则将所有库文件放入分隔文件夹。
  8. 使用与部件的相对链接。
  9. 始终使用指向其他库的绝对链接。它将有助于您在未来进行重构。

例如,这是一个类似于TODO应用程序的项目。所以,我们有视图类:

代码语言:javascript
复制
// This is a view html component class. //
library todolist.list_viewer;

import 'package:todolist/task.dart'; // model class

class ListViewer extends HtmlElement {
  // it showes list of tasks
}

class TodoRenderer extends HtmlElement {
  // this is a renderer for one todo item
}

这是一个模型类:

代码语言:javascript
复制
// This is a todo model task //
library todolist.task;

class TodoProvider {
  List<TodoItem> todos;
  String addItem(TodoItem new Todo) { 
    //... 
  }
}

class TodoItem {
  String Author;
  DateTime date;
}

它现在看起来很简单,分为几个独立的库。但是,如果我们想要添加RecId类来保持todo数据库id,那么它就变得太复杂了。我们应该将它分成两个库:todo_providertodo_model,并将RecId类放到最后一个库中。现在又好了。

如果我们想再添加一个模型:一个User,那么每个待办项目都可能有执行者或作者。我们不能把它放在todo_model里。现在,我们应该将TodoItemUser类组合到model库中。因此,我们只需将todo_model类重命名为model,并在其中添加User类。

或者最后一个操作,我们可以创建user_model库来保持User类。同时,由于用户模型也具有recId属性,因此应该将RecId类提取到独立的库中。

这完全取决于我们的班级有多大和多复杂。

票数 2
EN

Stack Overflow用户

发布于 2015-08-01 04:40:58

我了解到:

部件/的一部分用于将库分成几个部分(脚本)。您对公共和私人成员都有可见度。

导入是从库中“调用/使用”另一个库。您只对导入库的公共成员具有可见性。

WebStorm无法推断您希望脚本成为库的一部分。

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

https://stackoverflow.com/questions/31758069

复制
相关文章

相似问题

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