我正在使用MVVM和WPF,但是我很难理解这种设计模式背后的概念。
我有一个"myclass"对象,它是应用程序的状态(它存储从存储库加载的数据)。我的应用程序的所有页面都将使用这些数据,并且应该在它们之间同步对象。
我的第一种方法是使用单例类将这些数据存储在服务层中。所有ViewModel都应该调用这个服务来获取数据。任何修改都应该调用此服务,并触发一个事件来同步所有视图。我现在想知道是否将这些数据存储在模型层中会更好…他最好的选择是什么?
编辑:添加更多信息:存储的数据是加载到解决方案中的项目列表。因为必须只有一个解决方案,所以我将其实现为单例。必须可以交互加载、更改或删除任何项目。
服务在我的理解中只是抽象了一种功能(访问文件系统,访问数据库…),它实现了一个给定的接口,然后VM
可以在需要该功能时使用该接口。
然而,模型保存了应用程序的业务逻辑和任何将帮助执行该业务逻辑的东西(如果需要,可以/不能实现INPC)
所以从本质上讲,你使用一个服务来完成一些事情,然后放手,一个模型在你的应用程序中更加根深蒂固
对于您给定的用例,我将在模型中存储信息并在其上实现INPC
,以便如果另一个ViewModel对模型进行更改,则ViewModels自动获得更改通知。