現在、特定の種類のクラスによるメソッドの使用を制限する適切な方法を探しています。固有の種類のクラスでしか使用できないメソッドがある
私はサーバー内のネットワーク専用のクラスを持っています(ClientSession
と呼んでください)。一度サーバーに接続されたクライアントは、認証に30秒かかります。そうでない場合、サーバーは接続を閉じます。
認証は、サーバー上の別のクラス(Authenticator
と呼ぶ)によって処理されます。ClientSession
は、クライアントが正常に認証され、30秒のタイマーをキャンセルできると警告します。
問題は、公開メソッドClientSession
を呼び出すには、Authenticator
が必要です。しかし、私はその方法を誰にでも呼び出すことができないようにしたい。
要約すると、Authenticator
をClientSession::clientAuthSuccessful()
メソッドを呼び出すことができる唯一のクラスにします。
私は2つの事に見てきました:
- 友達方法が、私は
Authenticator
友達メソッドを介してすべてのプライベートメソッドとプロパティまたはClientSession
にアクセスできるようにしたくありません。 - 訪問者のデザインパターンですが、私の使い方を誤解していない限り、私は欲しいものをまったくやっていないようです。
このような特定の制限がある方法はありますか?またはクリーンな代替手段ですか?
http://stackoverflow.com/questions/7582664/is-there-a-way-in-c-to-create-super-private-variables/7582721#7582721あなたが探しているものかもしれません。しかし、私はちょうどよい古い文書に行きます。 – pmr