2008年2月16日 星期六

K16 令人感到麻煩的設計(9)──把固定數據提出成Constant

在程式寫作時常會有一個要求:要求把所有放置固定值的地方都另外使用常數來放置。對於寫作的人來說這是感到麻煩的地方,因為明明可以直接放置固定不變的值卻變得必須額外指定一個常數,無形中浪費了一點時間,而且有時無法快速找到定義的內容。

很多額外多做的行為都是為了一個目標──把相同意義的東西抽出到同一個地方。異中求同是在這裡是必須具備的能力,大至從Use Case裡把相同子劇本提出的sub Use Case、佈置系統架構的Module、為完成特定功能的Component、Class特性的分析與定義、決定完成指定功能的Method、直到將使用的Constant拉出到通用的變數,每一個提取動作的目的都是為了“完整的reuse”。

在遇到第一個可能會被reuse的部分時,會有人因為想少做點事而沒作提取的動作,但在接連遇到同樣的情況出現後,還是無法避免去做;而且等到後面才做時,必須得找出之前沒有提出的地方做出少許破壞程式改用共同部分的舉動,感覺上像是把之前沒做的事堆在後頭一次做完,而且可能會有漏失的風險。

所以我的作法是:該做的地方就在遇到的時候處理掉,即使它可能只出現一次。

沒有留言:

張貼留言