我一直在努力解決設計問題。我有一個對象Foo與一個對象數組Bar。有一系列與Foo完全耦合的計算方法,並且依賴於Bar數組的完整知識。所以我應該:兩個共享對另一個對象的依賴關係的對象的正確設計是什麼?
做一個Calculator類並傳入Bar對象的數組。這對我來說似乎很糟糕,因爲我無法將Calculator作爲獨立單元進行測試,因爲Foo和Calculator都依賴於相同的Bar數組。
做一個計算器模塊,並以某種方式擴展Foo,使其包括計算器?我還沒有找到一個好的方法來做到這一點,計算器自動擁有它所需的所有Foo知識。這可能嗎?
只是保持計算器在美孚,因爲它是如此耦合到它。
這裏是一個視頻,解釋這個原理:http://www.youtube.com/watch ?v = tvFK_BXv3P4 – 2011-05-03 21:18:50
「Foo'的實例應該在構造函數中需要一個實現接口'iCalculator'的參數」 - 在Ruby中,'iCalculator'是類還是模塊? – 2011-05-03 23:03:32
@ Andrew-Grimm afaik,ruby並沒有真正的接口,但最接近的是模塊。但我想,你**可以**使用特定的類,只是它會更努力。 – 2011-05-03 23:11:14