我一直在努力解决设计问题。我有一个对象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