2013-05-06 58 views
1

我期待重構一段代碼,該代碼爲數據庫的存儲過程提供編程接口。但是,我發現自己必須創建潛在的數百個功能,以幾種不同的配置完成相同的功能。許多功能可以做同樣的事情 - 什麼是DRY的優秀設計模式?

  1. 存儲過程的函數使用
  2. 映射到配置對象,它提供用於該特定存儲過程

指定參數和驗證PARAMS作爲一個例子:

getCountries = function(params){ 
    var options = { statement : 'proc_1'} 
    return run_request(options, params, mappings.select.countries) 
} 

getStates = function(params){ 
    var options = { statement : 'proc_2'} 
    return run_request(options, params, mappings.select.states) 
} 

自然,這種感覺不太乾,並且在有很多這樣的情況下會產生問題。

我很好奇我可以處理這種情況的不同方式,以及'最佳實踐'是什麼。

我想過有一個大的配置和導演函數,給定的字符串參數將得到正確的存儲過程及其配置。例如:

get('countries', params) 

但我不確定這一點,因爲在某些情況下,字符串看起來有點武斷。

我想過的另一件事是也有一個巨大的配置,只是在運行時自動生成的功能。這看起來更可取,但我仍然堅持一個非常大的文件,這可能是一個很難維護的文件,儘管它似乎比我目前的實現更好地遵循DRY。

想法?我應該看看有什麼特別的設計模式嗎?

回答

1

請勿將表格與功能混淆。

你必須的代碼的兩個例子具有相同的「形狀」,但執行不同的功能。沒關係。 DRY幾乎不會做同樣的功能功能(並且不可避免地會有多種方式)。

相關問題