C# MVVM结构:工厂、模型、存储库还是其他?

C# MVVM结构:工厂、模型、存储库还是其他?,c#,mvvm,mvvmcross,C#,Mvvm,Mvvmcross,我正在为Xamarin使用MVVM框架MVVMCross。我有服务、模型和ViewModels,它们有着非常明确的目的分离 我现在有了一个类,它将持久键:值存储作为JSON进行处理。该类由服务使用并与模型交互,但我认为它不属于这两个类别中的任何一个。像这样的课你叫什么?我通常将这种类称为helper,但是helper通常是功能性的和静态的,而这个类不是 对此问题的任何澄清都将不胜感激 增加: 因此,澄清一下,类独立于数据类型,实例化的一部分是传递数据类型,或者更具体地说是传递结构或类,因此它本身

我正在为Xamarin使用MVVM框架MVVMCross。我有服务、模型和ViewModels,它们有着非常明确的目的分离

我现在有了一个类,它将持久键:值存储作为JSON进行处理。该类由服务使用并与模型交互,但我认为它不属于这两个类别中的任何一个。像这样的课你叫什么?我通常将这种类称为helper,但是helper通常是功能性的和静态的,而这个类不是

对此问题的任何澄清都将不胜感激

增加: 因此,澄清一下,类独立于数据类型,实例化的一部分是传递数据类型,或者更具体地说是传递结构或类,因此它本身不是存储库,而是存储库的依赖项或抽象接口。然后,该存储库将由服务或ViewModel使用。对吗

我目前的结构:

                        __ KeyValueStore
ViewModel __ Service __/ 
                       \__ Model
支撑结构:

ViewModel __ Service __ Repository __ Model
                           \
                            \__ KeyValueStore 

在我看来,持久性数据属于数据层。MVVM可能是表示层,您可能有一些核心/业务逻辑层。要访问存储数据的类,可以使用repository模式,使核心/表示不依赖于数据层

但是存储库接口的命名可以是IKeyValueRepository,该存储库的具体实现可以命名为JsonKeyValueStorage


当您在标题中编写Repository时,我假设您知道如何使用该模式——如果您不想问:

为了验证我是否遵循,您提出了一个数据类型特定的存储库,例如:UserDataRepository,它具有基本的Get/Set操作,它将利用与数据类型无关的键值存储?这取决于您的需要。我提出了一个独立的数据存储逻辑。您可能会在依赖项注入框架中注册它,或者使用一些服务定位器。IKeyValueRepository可能只有两个方法T Getstring key和T Setstring key,T value。可能更适合这个问题,因为这个问题与软件架构和设计有关,似乎与主题无关