我目前正在编写自己的MVC框架用于学习目的,我决定使用依赖注入容器在类之间共享常用的对象(例如数据库实例)。
我在我的引导程序文件中初始化了容器,我在Application
类中有一个实例,在路由过程中传递容器实例是一个好习惯吗? (即将容器对象作为ControllerBase
构造函数中的参数传递)。另外,在我的ModelBase
?
答案 0 :(得分:1)
听起来,依赖注入器与您正在做的事情有所不同。它听起来更像是ServiceLocator,存储库或其他任何东西。通常,Dependency Injector介于调用之间(如果您将其用于参数注入)或创建之间(如果您将其用于字段或构造函数注入)。
依赖注入器的使用必须对注入的代码/对象完全透明。因此,如果你传递了一个引用,你就会做错事。
DependencyInjector也属于您的代码在其中运行的环境。按原样看待它。除非您将应用程序用作您运行的框架,否则应用程序甚至不应知道依赖项注入器。
因此,依赖注入工作意味着在实际应用程序中没有引用注入器。目标是以注入或不注入的方式运行应用程序。 Periode。