程式中的類別與套件首先體現架構設計中的概念分佈。良好的設計等同於建立一個結構合理的概念框架:隨著系統演進,作為概念載體的類別不斷吸收相關實現,使其外延豐富、內涵清晰。系統中概念分化最顯著的不是業務模塊劃分,而是技術層面與業務層面的分離。因為技術手段與業務在很大程度上相互獨立——無論實現何種業務,都會用到某些技術手段。當我們能回答「無論……都……」這類問題時,意味著該概念能容納多種變化,自然有資格成為獨立部分。
Spring框架中的JdbcTemplate對應「JDBC調用輔助類」概念,旨在一次函數調用獲取結果。但常見誤用如下:
List results = jdbcTemplate.query(...);
List ret = new ArrayList();
for(int i=0; i
為了避免此類技術性循環散落業務代碼,應建立JdbcTemplate擴展類,直接提供queryScalarList方法。這就是「告別裸奔編程」的基本要求——即使組件再完善,也難預見所有變化;集成第三方組件時需加入特定假設,此時技術隔離層必不可少。例如頁面開發強制使用平台定義的js.Ajax而非原始prototype.js對象,久而久之js.Ajax上聚集了系列AJAX相關調用指令。