4

ルート パッケージに 20 個のクラスがあるとします。ルート パッケージの下に 3 つのサブパッケージを作成して、クラスを整理することにしました。次に、5 つのクラスを各サブパッケージに入れ、ルート パッケージに 5 つのクラスを残します (これらはトップ レベルのクラスであるため)。ルート パッケージ内の 5 つのクラスからサブパッケージ内のクラスを使用する必要があるため、サブパッケージ内のクラスを公開することになりますが、サブパッケージ化する前は、それらのクラスはパッケージ内でのみ公開されます。

上記のコード構成は、適切なガイダンスに従って行われます。サブパッケージは、レイヤー別ではなく機能別です。パッケージが最小化される前の相互依存性。それでも、多くのサブパッケージ クラスは、より高いレベルからアクセスするのが理にかなっています。

この種のシナリオに対処するための適切な方法はありますか?

4

1 に答える 1

2

残念ながら違います。あなたが持つことができるのは、パッケージを非公開にすることによるパッケージレベルの可視性です(デフォルトアクセス)。クラスが同じモジュール内の他のクラスからのみ見えるようにすることはできません。Project JigsawJSR 294はこれに対処すると思いますが (他のものに加えて)、おそらく Java 9 までは見られないでしょう。

于 2014-04-09T15:53:10.410 に答える