Pup*_*Pup 11 oop dependency-injection
据我所知,这里的权衡取决于复杂性.也许?
似乎(总是?)使用依赖注入更加分离,但对于没有它的人来说更简单(对许多人来说).
根据我对生活中所有事物的理解,没有什么是绝对的,而且每件事都有时间和地点.我试图理解这里的权衡.
当您想要创建给定服务类型的替代实现时,请使用依赖注入。典型的例子是用模拟对象代替服务提供者以进行测试。
例如,依赖注入允许您使用“真实”数据库,或模仿真实数据库行为的“假”数据库。在这两种情况下,“注入”的依赖项具有相同的接口,但您可以交换实现。
正确完成(有效吗?)后依赖注入肯定会解耦你的对象.在我看来,最有效的领域是你在单元测试中使用Mock或stub对象.这通常意味着您将在每个单独的测试中进行单元测试,从而使它们更简单.然后,这种有效单元测试的推广通常会带来额外的好处.
我不一定会说DI增加了复杂性,因为如果系统的设计不够优秀,那么无论你是否使用DI都会很复杂.但是,如果您第一次使用DI框架,例如Spring框架,它可能会增加额外的学习曲线.