有一个最小的 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 可能会造成混淆。
我遇到了以下约定,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 可能会造成混淆。