首先,抱歉我的英语不好,我希望您明白我的意思。
这是我的问题:
假设我有一个MVC应用程序,包括标准的路由器、控制器、模型(service)层和某种类型的数据库连接器。 模型层依赖于数据库连接器,控制器依赖于模型/服务,而顶级的“应用程序”类则依赖于路由器和控制器。 我的对象层次结构如下所示:
App-> ControllerFactory-> ServiceFactory-> DAO-> DbConnection
也许,上述写法看起来不像是最佳的应用架构,但我想集中在另一件事情上: 当我尝试实例化一个App类时,我应该将所有依赖项传递给实例化的类;类依赖关系反过来也有它们自己的依赖关系等等。 结果是,我一次性得到了整个层次堆栈。但如果在某些情况下我不需要访问数据库呢?如果一些控制器用于呈现静态模板而不涉及模型交互呢? 我的意思是,如果在某些特殊情况下,类不需要自己的依赖项(在某些情况下需要),我应该有条件地注入依赖项或其他什么吗? 我真的卡在这一点上,不知道该怎么办。
这是我的问题:
假设我有一个MVC应用程序,包括标准的路由器、控制器、模型(service)层和某种类型的数据库连接器。 模型层依赖于数据库连接器,控制器依赖于模型/服务,而顶级的“应用程序”类则依赖于路由器和控制器。 我的对象层次结构如下所示:
App-> ControllerFactory-> ServiceFactory-> DAO-> DbConnection
也许,上述写法看起来不像是最佳的应用架构,但我想集中在另一件事情上: 当我尝试实例化一个App类时,我应该将所有依赖项传递给实例化的类;类依赖关系反过来也有它们自己的依赖关系等等。 结果是,我一次性得到了整个层次堆栈。但如果在某些情况下我不需要访问数据库呢?如果一些控制器用于呈现静态模板而不涉及模型交互呢? 我的意思是,如果在某些特殊情况下,类不需要自己的依赖项(在某些情况下需要),我应该有条件地注入依赖项或其他什么吗? 我真的卡在这一点上,不知道该怎么办。