思想家:
のは、私は別の機能を提供する約20の方法で1つの完全なクラスがあるとしましょう。
今、私たちは、このクラスを使用して複数のクライアントを持っているが、我々は彼らがアクセス制限を持っていると思います。
例えばのために -
クライアント1 - 法1 / M3 / M5 / M7 / M9 / M11へのアクセスを取得します。
クライアント2 - 法2 / M4 / M6 / M8 / M10 / M12へのアクセスを取得します。
私はこのアクセスを制限することができます方法はありますか?
私が考えた一つの解決策:
アクセスすることはできませんし、そこから例外をスロー親クラスとオーバーライドメソッドを拡張する2つの新しいクラスを作成します。しかし、その後、別の要件を持つ第三のクライアントは、我々は彼らのために新しいサブクラスを作成する必要があります。
これを行うための他の方法はありますか?
マークテックス:
あなたは、作成できるInterface1
だけのためのメソッドを定義しているClient1
、とInterface2
だけのためのメソッドを定義しているがClient2
。次に、あなたのクラスが実装Interface1
とInterface2
。
あなたが宣言するときにClient1
、あなたのような何かを行うことができますInterface1 client1
。このアプローチでは、client1
このインタフェースの唯一のメソッドにアクセスすることができます。
私は、これはあなたを助けることを願っています。