Обычный подход к объявлениям только пакетов - поместить их в библиотеку в каталоге lib/src/
, а не экспортировать эту библиотеку. Другие библиотеки в пакете могут импортировать библиотеку только для пакета, но пользователям, не входящим в пакет, не рекомендуется напрямую импортировать библиотеки в lib/src/
. (Это не невозможно, просто то, что не рекомендуется, потому что пакет может свободно изменять эти библиотеки без предупреждения).
Если для функций пакета требуется доступ к частным частям библиотеки классов publi c, тогда им потребуется находиться в той же библиотеке. Традиционный способ состоит в том, чтобы объявить обе библиотеки в lib/src/
и экспортировать только те части этой библиотеки, которые необходимо опубликовать. c:
library myPackage;
export "src/allDeclarations" hide Private, Declarations;
// or
export "src/allDeclarations" show Public, Things;
Обычно вы должны помещать только экспортированные и не экспортируемые объявления в той же библиотеке, если это абсолютно необходимо. В противном случае списки hide
/ show
станут слишком громоздкими, и легко забыть объявление в списке hide
.