実装に触られたくなければprivate云々以前にまずインターフェイスを
規定するのでは。具象クラスの型を持った変数引数は使わないよね。

privateでもパッケージプライベートでも実装への意図せぬアクセスは
実際起こりがちで、それを避けるなら作法としてはこれが一般的だと
個人的には思うのだけど。