我在文件 a.dart 中有一个对象 A,在 b.dart 中有一个对象 B
因此,B 位于 b.dart 的公共 API 中
我希望 A 成为唯一能够实例化 B 的人。
我可以将 B 移动到 a.dart 中并将其重命名为 _B。这将使 A 能够访问 _B 并且 _B 不会出现在 a.dart 的公共 API 中。
但是 B 有很多依赖项,而且 b.dart 是一个相当大的文件。 我想将 a.dart 和 b.dart 分开,同时仍然只允许 A 实例化 B。
有办法实现吗?
这可以通过使用部分文件来实现。
在
a.dart
:
part 'b.dart';
class A {
// _B is visible due to being a part of this file
_B b = _B();
}
在
b.dart
:
part of 'a.dart';
class _B {}