我有一段代碼使用BigDecimal
類,我討厭界面的笨拙。擴展BigDecimal?
我已經通過創建靜態方法具有以下方法輔助類緩解使用BigDecimal
s的整數的疼痛:
compare(BigDecimal first, int second)
divide(BigDecimal dividend, BigDecimal divisor, int scale)
divide(BigDecimal dividend, int divisor, int scale)
divide(int divident, int divisor, int scale)
multiply(BigDecimal first, BigDecimal second, int scale)
multiply(BigDecimal first, int second, int scale)
multiply(int first, int second, int scale)
zeroPad(BigDecimal value, int totalLength, int scale)
這就是我需要現在的代碼是一個小更可讀比以前。但是,我讀到靜態方法是一個「壞」的東西,他們不遵循面向對象的原則。
但是,如果我擴展BigDecimal
然而,我會定義一個新類型,因此我不得不重新定義所有方法來將它們與我的對象一起包裝,否則我將無法使用增強方法的結果。這似乎不是一件聰明的事情。
你會如何解決這個問題?
有趣的是,我在代碼中製作了幾乎完全相同的靜態方法。對我來說,「BigDecimal」沒有內置的「細分(BigDecimal dividend,int divisor)」方法真是瘋狂。上次你什麼時候需要用小數除以任何東西?在我的任何代碼計算中,我除了'int'外沒有其他任何東西。 (不是說這些案例不存在,而是因爲除數似乎是標準庫中最值得包含的情況)。 – ryvantage