Ответ 1
Я не видел, чтобы это было конкретно адресовано в любом месте, но я тоже об этом задумался, и вывод, который я пришел, заключается в том, что это признак неприкосновенности библиотечного уровня, а не конфиденциальности на уровне класса.
Если библиотеке требуется только перечислить ее части, вы можете получить доступ к любым внутренним свойствам библиотеки, просто объявив ее частью:
library hax;
part 'packages/somelib/secret.dart';
Теперь у меня есть доступ к любому частному полю или методу в secret.dart. Я могу сделать это с любым сторонним пакетом, который я импортировал, что делает концепцию конфиденциальности шутки.
Аналогично, если требуется только объявление part of
, любой файл может вставлять себя в библиотеку, объявляя, что он является частью этой библиотеки.
Однако, требуя как объявление part
в объявлении библиотеки, так и объявление part of
в файле, который должен быть включен в библиотеку, Dart избегает этой ситуации.