25

ここで少し構造上の問題があります。

C++ では、「フレンド」という概念があり、このようなフレンド クラスはプライベート メンバーにアクセスできます。

だから、私はJavaアプリを開発していて、MVCアーキテクチャに準拠しようとしています. 「map_objects」間のグラフ接続を管理するコントローラー クラスがあります。このコントローラー クラスを使用して、これらの接続を実際に設定する DTO 'map_objects' の関数を非表示にしたいと思います。

(つまり、コントローラー クラスが接続を設定するために必要な機能を実装している場合でも、「ユーザー」は DTO のセッター/ゲッター関数に直接アクセスして、それらを自分で設定することができます。)

この点に関して、設計パターンやヒントはありますか? (または、私は完全にめちゃくちゃですか?)

DUPLICATE JavaでC++の「友達」の概念をシミュレートする方法はありますか?

4

2 に答える 2

20

(残念ながら) 残念ながら、Java には直接的な C++ フレンド相当のものはありません。ただし、Java アクセス レベル修飾子が役立ちます。特に、private または package private (別名 package protected、または「デフォルト」) が役立つ場合があります。

于 2008-12-17T23:31:38.793 に答える
17

インターフェースの分離を使用したい場合があります。つまり、クラスに異なるインターフェースを実装させ、適切な (より小さい) インターフェースへの参照のみを異なるクライアントに渡します。

于 2008-12-17T23:52:21.560 に答える