型のデザインのガイドライン

CLR の観点から見ると、型には参照型と値型という 2 つのカテゴリしかありませんが、フレームワークの設計について説明するために、ここでは、それぞれに固有の設計規則がある多数の論理グループに型を分割しています。

クラスは、参照型の一般的なケースです。 それらは、大半のフレームワークで型の大部分を構成します。 クラスは、それらがサポートしているオブジェクト指向の充実した機能セットと一般的な適用性によって、広く使用されています。 基底クラスと抽象クラスは、拡張性に関連する特殊な論理グループです。

インターフェイスは、参照型と値型の両方によって実装できる型です。 このため、参照型と値型の多様な形態の階層のルートとして機能できます。 さらに、インターフェイスを使用して、複数の継承をシミュレートできます。これは CLR ではネイティブにサポートされていません。

構造体は値型の一般的なケースであり、言語プリミティブと同じように、小さく単純な型用に予約してください。

列挙型は、値型の特殊なケースであり、曜日やコンソールの色などの短い値のセットを定義するために使用されます。

静的クラスは、静的メンバーのためのコンテナー用の型です。 通常は、他の操作へのショートカットを提供するために使用されます。

デリゲート、例外、属性、配列、およびコレクションは、すべてが特定の用途のための参照型の特殊なケースであり、その設計と使用に関するガイドラインについては、本書の別の場所で説明します。

✔️ 各型は、関連性のない機能のランダムなコレクションではなく、必ず関連するメンバーの適切に定義されたセットであるようにしてください。

このセクションの内容

クラスまたは構造体の選択
抽象クラスのデザイン
静的クラスのデザイン
インターフェイスのデザイン
構造体のデザイン
列挙型デザイン
入れ子にされた型
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. の許可を得て再印刷されています。

関連項目