质疑依赖关系注入框架的论点之一:为什么创建对象图很难?
像Google Guice这样的依赖注入框架为其使用(来源)提供了以下动机: 要构造一个对象,首先要建立它的依赖关系。但是要构建每个依赖项,您需要其依赖项,依此类推。因此,在构建对象时,确实需要构建对象图。 手工构建对象图是劳动密集型(...),并且使测试变得困难。 但是我不赞成这种观点:即使没有依赖注入框架,我也可以编写易于实例化且易于测试的类。例如,Guice动机页面中的示例可以用以下方式重写: class BillingService { private final CreditCardProcessor processor; private final TransactionLog transactionLog; // constructor for tests, taking all collaborators as parameters BillingService(CreditCardProcessor processor, TransactionLog transactionLog) { this.processor = processor; this.transactionLog = transactionLog; } // constructor for production, calling the (productive) constructors of the collaborators public BillingService() …