わかりました、私はこのようにプロジェクトを構成することに慣れています
|--com.mycompany.interfaces
| |--IFoo1(public)
| |--IFoo2(public)
| |--IBar1(public)
| |--IBar2(public)
|
|--com.mycompany.foos.impl
| |--Foo1(default) implements IFoo1
| |--Foo2(default) implements IFoo2
|
|--com.mycompany.bars.impl
| |--Bar1(default) implements IBar1
| |--Bar2(default) implements IBar2
|
|--com.mycompany.services
| |-FooBarService (public)
すべてのインターフェイスを整理するための 1 つのパッケージがあり、実装は独自の関連パッケージにあります。
public クラス FooBarService は、インターフェイス IFoo1、IFoo2 などを介して、Foo1、Foo2 などのインスタンスをこのプロジェクト外の呼び出し元に返す必要があります。ただし、クラス FooBarService は具体的なクラス Foo1、Foo2 などにアクセスできません。これらはパッケージ スコープであるためです。
具体的なクラスを外部のライブラリに公開せずに、実装を意味のある複数のパッケージに保持する良い方法は何ですか? またはそれは可能ですか?.netでは、具象クラスを として指定するだけinternal
で、実装されている場所や名前空間が何であれ、Javaでそのような構造を使用できるかどうか疑問に思っていますか?