Директивы part и part of в Dart
По умолчанию каждый файл .dart - отдельная
библиотека. Директива part в главном файле
и part of во вспомогательном склеивают
исходники в одну область имен. Тогда приватные
имена с _ видны во всех частях.
Главный файл объявляет часть и класс с полем подчеркивания:
part 'body.dart';
class Post {
String _title = "note";
}
Файл части указывает родителя и может читать
скрытое поле. Сам он не импортирует
post.dart - связь задает только
part of:
part of 'post.dart';
void show(Post post) {
print(post._title);
}
В main.dart по-прежнему импортируют
главный файл. Функция из части доступна как
имя верхнего уровня той же библиотеки:
import 'post.dart';
Post post = Post();
show(post);
Несколько классов можно держать в одном файле
без part - они уже делят одну библиотеку.
part нужен, когда логику удобнее
физически разнести, но оставить общую
приватность и одно пространство имен.
В одном файле geo.dart объявите
классы Point и Circle.
В main.dart импортируйте geo.dart,
создайте объекты обоих классов и выведите
их поля.
Разнесите классы Employee и Draft
из одного файла по employee.dart
и draft.dart без part.
В main.dart подключите оба файла
импортом и убедитесь, что код запуска
по-прежнему собирается.