現在、いくつかの抽象クラスを含むソリューションを作成しています。これらのうちの1つは、他のいくつかのクラスからのみ拡張する必要があります。これは、意図した以外の場所から使用すると少し混乱を招く可能性があります。だから私がしたいのは、このクラスを拡張できるクラスを制限することです。他のクラスを拡張できるクラスを制限する
もし私がAbstractクラスのImportantStuffという名前を持っているのであれば、クラスAとクラスBだけが他のクラスではそれを拡張できないと言いたいと思います。
私はこのようなことをしたいと思うかもしれません。コードは作業のために書かれているので、他の多くのプログラマーが後でそれを扱うことになるので、このクラスはすでに使用されている場所以外の場所から使用することは意図していません。はい、私はクラスの記述でそれを書くことができ、私は持っているが、私はすべてのプログラマーがコメントを読んで良いとは限らないので、それをブロックすることで100%明確にしたい:)また、私はちょっと興味がある私はウェブ上で良い答えを見つけることができなかったように良いファッション。
私の質問は:とは何ですか?これを実現させる方法は?私は、コンストラクタで処理されるキーまたは何かを送ることができると思いますが、これを行うためのよりクリーンな方法がありますか?
制限の必要どのクラス幾分程度別のクラスをしてもよいです[Open/Closed Principle](https://secure.wikimedia.org/wikipedia/en/wiki/Open/closed_principle)に違反しています。新しいクラスを抽象クラスの範囲まで拡張できるようにするには、抽象クラスと新しいクラスに触れなければなりません。それはあまり保守できません。また、\t 私は興味があります。どんな混乱が予想されますか?これは、アプリケーションの設計上の欠陥の周りにコーディングするように思えます。 – Gordon
@ Gordonあなたは良い点を持っています、そのようなクラスをロックするのは悪い習慣かもしれません。 「混乱を招く」という言葉は最良の選択肢ではないかもしれませんが、後で書かれたアプリケーションでコアのために意図された機能が「誤用される」ことは望ましくありません。私は、コアのみを対象としたリソースとアプリケーションを構築するために使用できるリソースとの間の分離を維持しようとしています。しかし、再びそれを阻止することが最善の方法かもしれません。たぶん私は誰もがドキュメントを読むことを信頼する必要があります:) – Sondre