抽象類別設計
注意
此內容是由 Pearson Education, Inc. 授權轉載自架構設計指導方針:可重複使用 .NET 程式庫的慣例、慣用語和模式,第 2 版。 該版於 2008 年出版,該書自那以後已於第三版進行了全面修訂。 此頁面上的某些資訊可能已過期。
❌「請勿」在抽象類類型中定義公用或受保護的內部建構函式。
只有當使用者需要建立類型的執行個體時,建構函式才應該為公用。 因為您無法建立抽象型別的執行個體,所以具有公用建構函式的抽象類型設計不正確,且會對使用者產生誤導。
✔️「務必」在抽象類別中定義受保護的或內部建構函式。
受保護的建構函式比較常見,只要允許基底類別在建立子類型時執行自己的初始化即可。
內部建構函式可用來將抽象類別的具體實作限制為定義類別的組件。
✔️「務必」提供至少一個繼承自您所傳送每個抽象類別的具象類型。
這樣做有助於驗證抽象類別的設計。 例如,System.IO.FileStream 是 System.IO.Stream 抽象類別的實作。
Portions © 2005, 2009 Microsoft Corporation. 著作權所有,並保留一切權利。
獲 Pearson Education, Inc. 的授權再版,從 Krzysztof Cwalina 和 Brad Abrams 撰寫,並在 2008 年 10 月 22 日由 Addison-Wesley Professional 出版,作為 Microsoft Windows Development Series 一部份的 Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition 節錄。