如何解决管理依赖项
| 如果您使用模拟来测试对象之间的交互,则必须通过构造函数或特定方法来传递协作者。在足够复杂的应用程序中,您将有很多小的对象彼此交互。您如何在应用程序的最高级别管理整个对象图的构造?简而言之,您如何处理以下问题:// arbitrarily complex
A a = new A(new B(new C(new D(new ...)),new E(new ...)),new F(new G(new ...)));
a.doSomething();
在这种情况下,依赖注入容器似乎是最好的解决方案。还有其他简化依赖管理的好策略吗?
解决方法
给出的示例只是穷人的DI。只要您将自己限制为在应用程序的“合成根”(入口点)中组成整个对象图,就可以了。 (顺便说一句,最近,我听说Dan North称其为'new'是新的'new'-暗示Java社区中的人们开始转向使用这种构造对象图的方式,而不是使用容器)。
但是,只要遵循“注册解析发布”模式,您当然也可以使用DI容器。特别是在基于请求的应用程序(Web应用程序和服务)中,使用Poor Man's DI管理生命周期可能会很复杂,因此在这些类型的应用程序中,容器可能会非常有帮助。
, 据我所知,保持所有这些依赖关系受控的唯一方法是创建一个可以传递的通用Context对象(即使它具有复杂性),或者将IoC与构造函数注入一起使用。
特别是在您给出的示例中,CI是一个很好的解决方案,因为您可以通过简单地配置容器来管理复杂性。
只是我的2美分...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。