機能拡張のデザインDesigning for Extensibility

フレームワークの設計の 1 つの重要な側面は、フレームワークの拡張性を慎重に検討することを確認して行っています。One important aspect of designing a framework is making sure the extensibility of the framework has been carefully considered. これは、コストとメリットに関連付けられたさまざまな機能拡張メカニズムを理解することが必要です。This requires that you understand the costs and benefits associated with various extensibility mechanisms. この章では、拡張メカニズムを判断するのに役立ちます: サブクラス化、イベント、仮想メンバー、コールバック、および、-、framework の要件を満たす最適なことができます。This chapter helps you decide which of the extensibility mechanisms—subclassing, events, virtual members, callbacks, and so on—can best meet the requirements of your framework.

フレームワークで機能拡張を可能にする方法はたくさんあります。There are many ways to allow extensibility in frameworks. コストが非常に強力なするよりも低コストの範囲です。They range from less powerful but less costly to very powerful but expensive. 任意の特定の機能拡張要件の要件を満たす最低コストのかかる機能拡張メカニズムを選択してください。For any given extensibility requirement, you should choose the least costly extensibility mechanism that meets the requirements. 重大な変更を導入することがなくすぐ実行しないことができますが、通常は、後で、複数の機能拡張を追加することは覚えておいてください。Keep in mind that it’s usually possible to add more extensibility later, but you can never take it away without introducing breaking changes.

このセクションの内容In This Section

シールされていないクラスUnsealed Classes
プロテクト メンバーProtected Members
イベントとコールバックEvents and Callbacks
仮想メンバーVirtual Members
抽象化 (抽象型およびインターフェイス)Abstractions (Abstract Types and Interfaces)
抽象化の実装用の基本クラスBase Classes for Implementing Abstractions
シールSealing
Portions © 2005, 2009 Microsoft Corporation.All rights reserved.Portions © 2005, 2009 Microsoft Corporation. All rights reserved.

Pearson Education, Inc. からのアクセス許可によって了承を得て転載Framework デザイン ガイドライン。規則、手法、および再利用可能な .NET ライブラリの第 2 版のパターンKrzysztof Cwalina、Brad 内容では、Microsoft Windows の開発シリーズの一部として、Addison-wesley Professional、2008 年 10 月 22日を公開します。Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published Oct 22, 2008 by Addison-Wesley Professional as part of the Microsoft Windows Development Series.

関連項目See also