2010-06-10 54 views
0

我有一些代碼將一個域對象轉換爲第二個域對象。第二個對象中的一個字段值通過包含大量「If then else」和返回語句(100行代碼)的長函數進行翻譯。您可以說,第一個對象中的幾個字段用於確定第二個域對象中的1個字段的值。翻譯/規則模式

現在對於這個問題,有沒有一種模式可以使這個更具可讀性? ...也許爲股東提取這些規則?

+0

這些條件是什麼樣的?他們檢查相同的價值,還是測試不相似的條件?如果他們測試相同的值,則可以用交換機或查找表替換它們。 – Rudi 2010-06-10 11:07:02

回答

0

聽起來像商業邏輯給我。查看我的僱主提供的a screencast showing modeling of decision tables。這是一種吸引商業利益相關者的方式,因爲它們也能夠自己提供這樣的規則,例如,進行修改並提供新的規則。

雖然不是試圖將它封裝在乾淨的業務對象或甚至服務中,但我無法給出基於代碼的設計模式來解決這類問題。