在多层级 Castle Windsor 应用中注册对象的最佳位置及方法
在将 Castle Windsor 集成到具有多层结构(例如数据访问层、业务逻辑层和应用层)的应用程序中时,务必仔细考虑 Windsor 中对象注册的设计。问题在于:谁应该负责注册对象?
对象注册的设计方案
推荐方法:组合根
为了实现最大的模块化和松散耦合,所有应用程序组件都应尽可能晚地进行组合。实际上,这意味着在应用程序的根目录配置容器:
Main
方法Global.asax
ServiceHostFactory
容器充当组合引擎,应用程序根目录充当组合根。这确保应用程序保持简单的可执行文件,无需进行不必要的单元测试。
无需容器的测试
测试应避免依赖容器。相反,对象和模块的设计应与容器无关。单元测试可以直接为这些组件提供测试替身。
Windsor 安装程序用于封装
在 Windsor 中,组件注册逻辑可以封装在实现 IWindsorInstaller
的安装程序中。有关更多详细信息,请参阅 Windsor 文档。
以上是我应该在多层 Castle Windsor 应用程序中的哪里注册对象以获得最佳设计和可测试性?的详细内容。更多信息请关注PHP中文网其他相关文章!