c# - MVVM 和避免 Monolithic God 对象

标签 c# wpf mvvm god-object

我正处于一个大型项目的完成阶段,该项目包含多个大型组件:图像采集、图像处理、数据存储、工厂 I/O(自动化项目)和其他几个组件。

这些组件中的每一个都相当独立,但为了让项目作为一个整体运行,我至少需要每个组件的一个实例。每个组件还有一个 ViewModel 和 View (WPF),用于监视状态和更改内容。

我的问题是实例化所有这些对象、将一个类订阅到另一个类中的事件,并为所有这些使用通用的 ViewModel 和 View 的最安全、最有效和最可维护的方法。

如果我有一个名为 God 的类,它拥有所有这些对象的私有(private)实例,会不会更好?我过去曾这样做过并为此感到后悔。

或者如果上帝依靠这些对象的单例实例来启动球会更好吗。

或者,Program.cs(或者 Main(...) 所在的任何地方)是否应该实例化所有这些组件,并将它们作为参数传递给上帝,然后让上帝(窃笑)和他的 ViewModel 处理运行这个的细节项目。

我希望听到的任何其他建议。

谢谢!

最佳答案

看看一些依赖注入(inject)框架,例如 Unity(CAL 使用)、CaSTLe Windsor 或 Spring.NET。

关于c# - MVVM 和避免 Monolithic God 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2951301/

相关文章:

c# - 如何在 new rhino mocks 3.5 中抛出异常

c# - 获取与显示设置中找到的匹配的显示名称

.net - 如何为 >= Vista 自定义 FileOpen 对话框?

WPF - DataGrids 中的样式超链接

android - 使用三元运算符在 Android MVVM 数据绑定(bind)中实现可见性

c# - 如何从 MainWindow 中的用户控件获取数据

C# 通过上下文菜单传递参数

c# - 为什么 IObservable<T>.First() 会阻塞?

c# - MVC 成员资格问题 - C#、EntityFramework

c# - 将数据从 View 模型绑定(bind)到 View