「機房管理系統」中有四個高度相似的查詢窗體:學生基本信息、上機狀態、上機統計、操作員記錄。初版分別開發,代碼大量重複。後通過抽象合併為單一窗體。
功能確定 → 數據表確定 → 查詢條件僅取決於界面控件。將界面控件組合封裝為可復用組件,運行時動態適配。
界面顯示中文(如「學號」),數據庫字段為英文(UserID)。封裝轉換邏輯:
Public Function GetFieldName1() As String
Select Case cmbField1.SelectedIndex
Case 0: Return "CardID"
Case 1: Return "UserID"
Case 2: Return "UserName"
Case 3: Return "Sex"
Case 4: Return "Department"
Case 5: Return "Grade"
Case 6: Return "stuClass"
End Select
Return Nothing
End Function
「抽象」不僅是提取公共代碼,更是識別業務不變量(查詢條件來源於界面),將變量(SQL、表名)參數化。設計模式提供了結構化詞彙表達這一過程。
此案例展示了從「能跑通」到「好維護」的工程化思維進階。