特定の種類のオブジェクトの管理を担当するマネージャー クラスがあります。そのためには、これらのオブジェクトを操作する必要がありますが、これらのオブジェクトはマネージャとはまったく関係がないため、技術的に設計すると、「project.managers」と「project.objects」という別のパッケージになります。重要なことは、問題のオブジェクトはマネージャーだけが操作でき、それ以外の場所では操作できず、プロジェクト内の他のすべてのクラスからアクセスできる必要があるということです。
そのため、マネージャーにはメソッドの操作にアクセスできるようにしてもらいたいのですが、他のすべてのクラスへのアクセスは制限してください。最も明白な方法は、マネージャー クラスとオブジェクト クラスを同じパッケージに移動し、操作メソッドを保護することを宣言することですが、マネージャーとオブジェクトは完全に別個のエンティティであるため、哲学的には適合しません。
(これは、問題のオブジェクトのコードをオートコンプリートするたびに IDE が操作メソッドを表示しないようにするためです。そのため、問題のオブジェクトを変更するたびに対応するテーブルが正しく更新されるように、常にマネージャーを経由する必要があります) .
それに対するアイデアはありますか、それとも明白な方法がいずれにせよ最良の方法ですか?