Bootstrap系统应该在哪一层?

时间:2015-08-24 04:00:07

标签: design-patterns model-view-controller mvvm

遵循多层软件架构,应用程序应由多个层组成。

(例如:表示层,业务层,数据访问层,......)

例如:

在MV *应用程序中,我们说"表示层可以看到模型层,但模型层不应该能够看到表示层"。

好的,没错!

但是在实际的应用程序中(例如:桌面应用程序),有一些" Bootstrap System"代码如:bootstrap应用程序,应用程序生命周期管理,加载UI系统,init资源等......

似乎" Bootstrap系统"可以看到应用程序中的所有内容,无论是" model"或"演示"。

我的问题是:" Bootstrap系统"应该在。

非常感谢。

-----------------------编辑此问题------------------ -----

非常感谢@Mark Seemann的回复。

IMO,"作文根"是应用程序的入口点,我们可以在其中构建全局对象(或使用DI容器)。

因此,#34;组合根"正在组成对象图。

但我的问题并不是专注于构建对象图,而是关注"分离问题"。

例如:

在MV *应用程序中,您有一个ApplicationManager对象来管理应用程序的生命周期。

在应用程序的入口点(例如:Main),我们可以构建ApplicationManager。

在同一个地方(应用程序的入口点),我们还构建了一些其他对象(例如:UI Framework,ResourceManager,DB Respoistry等)。

(注意:我们也可以使用DI Container代替穷人的DI,但它只是技术细节。)

当用户点击"按钮退出"在视图中,演示者将调用ApplicationManager.Quit()。

然后应用程序将退出。

显然,ApplicationManager.Quit()将释放所有内容,无论是" model"或者"演示",因此ApplicationManager可以看到应用程序中的所有内容。

我的问题是ApplicationManager应该在哪一层。(ModelLayer?表示层?组合根?)

注意:在这种情况下:ApplicationManager不是Composition Root,Main(或DI Container)是Composition Root。

0 个答案:

没有答案