シールされていないクラス
シールされていないクラスを使用すると、他のクラスはそのクラスを継承できます。 プロテクト メンバーや仮想メンバーなど、他の多くの機能拡張機構では、クラスがシールされていないことが要求されます。 これらの追加機構は型の機能を追加またはカスタマイズするための強力な方法を追加しますが、あまりコストはかかりません。 シールされていないクラスは、追加の機能拡張機構を使用しない場合でも、数多くの開発シナリオで使用できます。
低コストではあるが、高く評価された機能拡張をフレームワークに提供するための主要な方法として、仮想メンバーまたはプロテクト メンバーを持たない、シールされていないクラスを検討します。
既定では、ほとんどのクラスはシールされていません。 これにより、開発者は、特定のシナリオに基づいてクラスをカスタマイズできます。 たとえば、クラスがシールされていない場合に、クラスから派生した型にコンストラクターを追加し、そのコンストラクターを使用して、基本クラスのプロパティをシナリオに必要な値に初期化できます。 また、シナリオ固有の既定値を渡すメソッドのオーバーロードを追加することもできます。
Portions Copyright 2005 Microsoft Corporation. All rights reserved.
Portions Copyright Addison-Wesley Corporation. All rights reserved.
設計ガイドラインの詳細についてを参照してください、「フレームワークの設計ガイドライン。規則、慣用句、および再利用可能なパターン。ネット ライブラリ」本クシシュトフ Cwalina、ブラッド エイブラムス、アスキー、2005 年発表しました。