類別階層架構設計的擴充性考量
更新:2007 年 11 月
甚至設計完善的類別階層架構在經過一段時間後也需要進一步發展。在設計類別階層架構時所做的早期抉擇,可以簡化後來的工作。
擴充類別階層架構
下列清單所包含的建議事項,可以讓您的類別階層架構更易於擴充:
定義類別階層架構的方式是從一般到特定定義。在繼承階層架構 (Inheritance Hierarchy) 每一層次上所定義的類別,請盡量符合一般性原則。對於來自基底類別的方法,衍生類別可以進行繼承、重複使用與擴充。
例如,假定您正在設計以電腦硬體為模型的類別階層架構。當您開始模型化輸出裝置時,可以定義名為 Display、Printer 和 File 的類別。然後,您可定義用來實作基底類別中所定義之方法的類別。例如,LCDDisplay 類別可衍生自 Display,並實作名為 EnterPowerSaveMode 的方法。
請擴大定義資料型別及儲存區,以避免之後難以變更。例如,您可考慮使用 Long 型別的變數,即使您目前的資料只需要標準 Integer 變數。
只公開 (Expose) 衍生類別所需要的項目。Private 欄位和方法可以降低命名衝突,並防止其他使用者使用日後可能需要變更的項目。
僅有衍生類別所需的成員應標記為 Protected。這樣可以確保只有衍生類別會由這些成員決定,並且可以在開發過程中輕鬆更新這些成員。
請確定基底類別方法不會由 Overridable 成員所決定,其功能可以藉由繼承類別變更。