私はここに独特の問題や状況があります。できるだけシンプルにしようとしています。私は基底クラス(親と言う)と、基底クラス(親)から直接派生した派生クラス(Child1、Child2 ..ChildNと言う)の全束を直接持っています。私は基本クラスを変更し、Child2とChild3のみにアクセス可能で、他の子にはアクセスできないようにする(または今後Child5が将来も最小限の変更でそれを使用できるように設定可能にする) "AVeryPrivilegedMethod"を追加したい。どのようなデザインパターン/建築パターンがこの法案に適合するか?一部の派生クラスのみをベースクラスのメソッドにアクセスさせたいときに使用するデザインパターンは何ですか?
使用言語 - C#。
PS:私はInternalVisibleToを使用しますが、これは、アセンブリレベルで適用されることを実現することを考えた
私はこれまで、他のクラスを「安全」対策として特権的な機能に限定することを考えていましたが、実際には意味がありません。 mquanderが言ったように、ただ2つのクラスを作るか、誰かがサブクラスにそれを使うようにするほうが良いです。サブクラスかベースクラスのどちらにアクセスするかを決めることができますが、コードのどこかでその関数を使うクラスを指定する必要があります。あなたはそれを偶然、あるいは子供の授業と呼ぶのを恐れていますか?ユーザーがそのクラスにプラグインを書き留めないようにしようとしていますか? – voodoogiant