Androidアプリで使用するライブラリを初めて自作しており、可視性を含めたパッケージ分けに悩んでいます。
ネットを探してみてもそのあたりの定石がよくわかりません。

以下のようにパッケージを切っているのですが(説明のために多少省略しています)、
どうにかして Util.java 以外を見えないようにしたいです。
(ライブラリ使用側に `Util.java' 以外を見せたくありません)

パッケージ分けをなくしてフラットな構成にすればいいのはわかっているのですが、
わかりやすくパッケージ分けをしながらうまく可視性の調整ができる方法があるのかと思い質問するに至りました。

  • model, usecase, repository パッケージの各クラスは (省略しています)publicになっている
  • Util から usecase, modelパッケージへの参照、 usecaseパッケージから repository, modelパッケージへの参照があります。

com.hogehoge
|--> model
|--> usecase
|--> repository
|- Util.java