buf*_*erz 8 c# wpf mvvm god-object
我正处于一个大项目的完成阶段,该项目有几个大的组件:图像采集,图像处理,数据存储,工厂I/O(自动化项目)和其他几个.
这些组件中的每一个都是相当独立的,但是要使项目作为一个整体运行,我需要每个组件至少一个实例.每个组件还具有ViewModel和View(WPF),用于监视状态和更改内容.
我的问题是实例化所有这些对象的最安全,最有效和最易维护的方法,将一个类订阅到另一个类中的Event,并为所有这些提供一个共同的ViewModel和View.
如果我有一个名为God的类具有所有这些对象的私有实例,那会不会最好?我过去做过这件事而后悔了.
或者如果上帝依靠这些物体的Singleton实例来让球滚动,那会更好吗?
或者,如果Program.cs(或Main(...)所在的位置)实例化所有这些组件,并将它们作为参数传递给God,然后让他(窃笑)和他的ViewModel处理运行这个项目的细节.
我希望听到的任何其他建议.
谢谢!
我获取 ViewModel 的首选方法是使用 ViewModelLocator。基本上它是你所暗示的上帝对象,但它唯一的责任是创建每个 ViewModel 并保留对它的引用。我通常将 VML 添加到应用程序的资源中,每个视图负责将其 DataContext 设置为正确的 ViewModel。如果您要订阅多个事件,您可以让 VML 手动连接它们,也可以创建首先抛出事件的 VM,并将其传递给其构造函数中的依赖 VM。
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |