![密閉型インターフェースと密閉型クラスの改善](https://i.ytimg.com/vi/d_Mor21W_60/hqdefault.jpg)
コンテンツ
- 定義-シールドクラスとはどういう意味ですか?
- Microsoft AzureとMicrosoft Cloudの紹介|このガイドを通して、クラウドコンピューティングとは何か、Microsoft Azureを使用してクラウドからビジネスを移行および実行する方法を学習します。
- Techopediaはシールドクラスを説明します
定義-シールドクラスとはどういう意味ですか?
C#のシールドクラスは、どのクラスにも継承できないが、インスタンス化することができるクラスです。
封印されたクラスの設計意図は、クラスが特殊であり、その動作をオーバーライドするために継承を通じて追加機能を提供するためにクラスを拡張する必要がないことを示すことです。シールクラスは、プログラム全体で使用する必要のあるロジックを変更せずにカプセル化するためによく使用されます。
シールクラスは、派生クラスがシールクラスで提供される実装を破損する可能性のある意図しない派生を防ぐことにより、セキュリティ上の理由で主に使用されます。封印されたクラスは基本クラスを形成できないため、封印されたクラスの呼び出しは、封印されたクラスのインスタンスでの仮想メンバー関数の非仮想呼び出しへの呼び出しなど、特定のランタイム最適化を可能にするため、わずかに高速です。封印されたクラスは、クラスを封印されたタイプから封印されていないクラスに変更する際に互換性を損なうことなく、バージョン管理に役立ちます。
.NETフレームワークライブラリの主要なクラスのいくつかは、主にこれらのクラスの拡張性を制限するために、封印されたクラスとして設計されています。
Microsoft AzureとMicrosoft Cloudの紹介|このガイドを通して、クラウドコンピューティングとは何か、Microsoft Azureを使用してクラウドからビジネスを移行および実行する方法を学習します。
Techopediaはシールドクラスを説明します
暗黙的に封印される構造体とは異なり、封印されたクラスは、クラスの偶発的な継承を防ぐために、キーワード「封印された」で宣言されます。シールクラスは、パブリックレベルのアクセシビリティを持つメソッドがある場合にのみ有用です。抽象クラスは、抽象メソッドおよびプロパティの実装を提供する別のクラスによって派生することを目的としているため、シールクラスを抽象クラスにすることはできません。
たとえば、オープンクラスおよびクローズデータベース接続、データのフェッチと更新など、データベース関連のアクションの機能を提供できるプロパティとメソッドを使用して、シールクラスDatabaseHelperを設計できます。派生クラスをオーバーライドすることで改ざんされることなく、封印されたクラスとして設計できます。
シーリングは、拡張性の利点を制限し、ライブラリタイプのカスタマイズを防ぎます。したがって、クラスは、シールの影響を慎重に評価した後にシールする必要があります。クラスを封印するために考慮する基準のリストには、次のものが含まれます。
- クラスは静的です
- クラスには、機密情報を表す継承されたメンバーが含まれます
- クラスは、リフレクションメソッドを介してその属性を取得するために照会されます
- クラスは、シールする必要がある多くの仮想メンバーを継承します