有一个最小的 init.pp 是 class 范围模块的约定吗?

Is it a convention to have a minimal init.pp that class-scopes the module?

我遇到了以下约定,init.pp 尽可能最小,对于 modules/java8/init.pp[=18= 中的 java8 模块示例,看起来像这样]

import "*"

class java8 {
    include java8::java8
}

然后一个modules/java8/java8.pp定义实际的rules/implementations:

class java8::java8 {
  # ...
}

这是一个约定,它是一个旧约定并且被弃用了吗?这背后的原因是什么?

我不熟悉这种风格作为任何广泛使用的惯例,而且我认为它的价值有限。具体来说,它似乎是代码组织利益和使用利益之间的折衷:它允许每个 class 结果都将在以它命名的清单文件中定义(包括委托 main class,java8::java8, in modules/java8/manifests/java8.pp), 同时为模块提供一个main class 一个单段限定名(java8), 这样用户就可以简单的

include 'java8'

我认为现在通过将细节委托给模块内的其他私有 class 来保持主要 class 小是相当普遍的,但我认为没有太大价值仅出于(显然)命名目的委派给一个其他class。我还认为在同一模块中使用具有相同非限定名称 (java8) 的不同 class 可能会造成混淆。