2014-06-20 78 views
-1

我有一個最佳的practive /設計模式問題。我正在調度系統,我需要計算一個價格。計算價格的設計模式建議

在系統設置中,管理員可以管理8種不同的費率規則。有最低費用,停車費,收費,...。

每條規則都可以被激活和停用,每條規則都有其自己的參數,例如 ,例如規則'停車'有'價格','增值稅','每小時價格或固定價格'等參數。

我正在考慮使用戰略模式或橋樑模式,但兩者都不適合我認爲。

另一種解決方案是簡單的繼承而不使用接口。

我已經爲藍本的東西,但我不是100%滿意,結果是:

https://www.dropbox.com/s/jllb8h0671ssq8u/RateRule-Pattern.png

回答

0

聲音對我來說非常合理... 無論模式你怎麼稱呼它,我看到了在您的想法中有很多意義 - ParkingCalculator,TollCalculator等的集合,具有通用接口。這使得添加更多類型的付款很容易,如果他們一路飆升,它可以讓您替換一些部分(例如不同的停車政策)。如果後者發生,那麼它確實屬於「戰略」的經典定義。

我個人也想隱瞞這一切的背後「calculateTotal」的更高級別的界面 - 當前實施是「通過計算器的集合迭代」,但系統的其餘部分不應該介意,如果這更改(例如,如果規則變得如此複雜以至於需要樹,或由交通部對某些外部服務進行REST調用)。