次の方法で共有


抽象クラスのデザイン

このコンテンツは、 フレームワーク設計ガイドライン (再利用可能な .NET ライブラリの規則、イディオム、パターン、第 2 版) から、Pearson Education, Inc. のアクセス許可によって再印刷されます。 そのエディションは2008年に出版され、その後 、本は第3版で完全に改訂されています。 このページの情報の一部が古くなっている可能性があります。

❌ 抽象型でパブリックまたは保護された内部コンストラクターを定義しないでください。

コンストラクターは、ユーザーが型のインスタンスを作成する必要がある場合にのみパブリックにする必要があります。 抽象型のインスタンスを作成できないため、パブリック コンストラクターを持つ抽象型は誤って設計され、ユーザーに誤解を招きます。

✔️ 抽象クラスで保護されたコンストラクターまたは内部コンストラクターを定義します。

保護されたコンストラクターはより一般的であり、サブタイプの作成時に基底クラスが独自の初期化を実行できるようにします。

内部コンストラクターを使用して、抽象クラスの具象実装をクラスを定義するアセンブリに制限できます。

✔️ 出荷する各抽象クラスから継承する具象型を少なくとも 1 つ指定してください。

これを行うと、抽象クラスの設計を検証するのに役立ちます。 たとえば、 System.IO.FileStreamSystem.IO.Stream 抽象クラスの実装です。

Portions © 2005, 2009 Microsoft Corporation. 無断転載を禁じます。

フレームワーク設計ガイドライン:再利用可能な .NET ライブラリの規則、イディオム、パターン、Krzysztof Cwalina および Brad Abrams による第 2 版は、2008 年 10 月 22 日に Microsoft Windows 開発シリーズの一部として Addison-Wesley Professional によって公開されました。

こちらも参照ください