这个之前提过, 所以需要注入依赖. 但是简单的值类型, 例如字符串, List, Dictionary等还是可以的.
在构造函数/字段声明里调用静态方法
静态方法不可以被mock, 也不能被注入....构造函数里出现非赋值代码
存在另外一个初始化函数 (也就是说构造函数走了完, 但是对象并没有被完全初始化)
如何解决问题?
不要在构造函数里创建依赖项, 应该注入它们....当需要构建对象图(一组有引用关系的对象), 也包括对象需要一些构建的参数等情况, 应该使用工厂, 建造者模式, 或者IoC容器的依赖注入等, 目的是把这些对象的构建工作分离出去....为了易于测试, 针对这两类构造, 有下列规则:
可注入的对象可以在构造函数请求(注入)其它的可以注入对象, 但是不能在构造函数请求可new的对象....正确的做法应该是, 作为方法的参数传递进来:
?
第五个例子
如果出现类类似initalize()或类似意思的方法, 很有可能说明该对象的责任太多了.
?