3
|
devoured elysium · 技术社区 · 14 年前 |
![]() |
1
1
它不是一个评估依赖关系的有用指标
更大的问题是
你有两个选择。首先是定义
你的第二个选择是使用更实用的方法
但核心问题仍然存在,那就是你需要
这需要
|
![]() |
2
3
我认为你的第三个选择肯定是可行的,不仅是因为可测试性,还因为一般的设计考虑。最后,基因是一种传输数据的方式,但它本身并没有真正的行为。突变只是发生在数据上的事情。因此,随机指令在其他地方仍然有能力对基因起作用是有意义的。 在可测试性方面,这也是迄今为止最干净的方法,它可以保持所有内容都是明确的,并且在必要时可以很容易地替换为stubing。 |
![]() |
3
3
我认为有一个GeneMutator类没有什么错,它有一个接受基因并返回突变基因的mutate方法(并保持对INumberGenerator的引用)。
|
![]() |
4
2
如果可测试性是你的目标,我喜欢你的第三个选择。在我看来,让行为接近数据是次要目标,而可测试性和SRP是主要目标。 我的第二个选择是使用构造器注入将服务放入Gene(或者setter注入,尽管我不是一个粉丝)。你的主要反对意见似乎是“大多数时候,我会在不使用它的情况下使用它,这看起来不太好。”这也适用于直接在类上使用该方法——不同的是,你只是将该功能移到一个注入的类上。 |