Приватные дочерние модули (private child units)
Дочерние модули могут быть приватными.
Такая концепция позволяет создавать дочерние модули, которые будут видимы только внутри иерархии родительского пакета.
В этом случае сервисы для подсистемы могут быть инкапсулированы внутри приватных пакетов, используя наследуемые ими преимущества для компиляции и видимости.
В спецификацию приватных дочерних пакетов разрешается включать приватную часть спецификации их пакетов-родителей, поскольку такие дочерние модули - приватны.
В обычном случае - это не разрешается, так как нарушает сокрытие деталей реализации родительской приватной части.
private package Stacks.Statistics is
procedure Increment_Push_Count; end Stacks.Statistics; |
Процедура Stacks.Statistics.Increment_Push_Count могла бы быть вызвана внутри реализации пакета Stacks. Такая процедура не будет доступна ни одному внешнему, по отношению к этой иерархии модулей, клиенту.
Copyright (C) А.Гавва | V-0.4w май 2004 |