优化温莎城堡中的对象注册
Castle Windsor 的有效依赖注入取决于策略对象注册。 本文比较了不同的方法并推荐了最佳实践。
注册策略:
有几种注册对象的方法:
特定于层的注册:每个层都会注册自己的依赖项。 这简化了单层测试,但会创建层间依赖关系和复杂的组合。
依赖驱动注册:层仅注册它们的直接依赖项。这减少了层间耦合,但使测试复杂化,需要频繁重新加载模拟对象。
应用程序级别注册:所有对象都在应用程序的最高级别注册。这集中了注册,但阻碍了单层测试并将应用程序与实现细节紧密耦合。
推荐方法:组合根
最佳解决方案是在应用程序的“组合根”(应用程序模块的组装点)注册对象。这有几个优点:
增强的模块化和解耦:模块尽可能晚地组合,最大化模块化并最小化模块间依赖。
集中注册:容器维护所有注册组件的单一、清晰的视图,简化维护和管理。
提高了可测试性:单元测试可以直接与对象交互,无需容器配置。
温莎城堡通过“安装程序”(实现IWindsorInstaller
)促进了这一点。 每个模块的安装程序都会注册其对象,从而创建结构化且可扩展的注册过程。
以上是温莎城堡中登记物品的最佳地点在哪里?的详细内容。更多信息请关注PHP中文网其他相关文章!