静的クラスのデザイン

Note

このコンテンツは、Pearson Education, Inc. の許可を得て、『Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition (フレームワーク設計ガイドライン: 再利用可能な .NET ライブラリの規約、表現形式、およびパターン、第 2 版)』から転載されています。 この版は 2008 年に出版され、その後、この本は第 3 版で全面的に改訂されました。 このページの情報の一部は古くなっている可能性があります。

静的クラスは、静的メンバーのみが含まれるクラスとして定義されます (もちろん、System.Object から継承されるインスタンス メンバーと、プライベート コンストラクターがある場合はそれを除きます)。 一部の言語には、静的クラスのサポートが組み込まれています。 C# 2.0 以降では、クラスが静的として宣言されている場合、それはシールドで抽象であり、インスタンス メンバーをオーバーライドまたは宣言することはできません。

静的クラスは、純粋なオブジェクト指向設計と単純さの間の妥協を表しています。 一般に、それらは、他の操作 (System.IO.File など)、拡張メソッドのホルダー、または完全なオブジェクト指向ラッパーが保証されていない機能 (System.Environment など) へのショートカットを提供するために使用されます。

✔️ 静的クラスは控えめに使用してください。

静的クラスは、フレームワークのオブジェクト指向コアのサポート クラスとしてのみ使用する必要があります。

❌ 静的クラスを雑多なもののバケットとして扱わないでください。

❌ 静的クラスのインスタンス メンバーを宣言またはオーバーライドしないでください。

✔️ プログラミング言語に静的クラスの組み込みサポートがない場合は、静的クラスをシールドの抽象型として宣言し、プライベート インスタンス コンストラクターを追加します。

Portions © 2005, 2009 Microsoft Corporation. All rights reserved.

2008 年 10 月 22 日に Microsoft Windows Development シリーズの一部として、Addison-Wesley Professional によって発行された、Krzysztof Cwalina および Brad Abrams による「Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition」 (フレームワーク デザイン ガイドライン: 再利用可能な .NET ライブラリの規則、用法、パターン、第 2 版) から Pearson Education, Inc. の許可を得て再印刷されています。

関連項目