我已经通过以下方式创建了我的应用程序结构:
DataRepository
类具有3个成员,它们是接口。每个接口都提供适当的数据。第一个成员接口使用“ Owner
”模型数据,第二个成员接口使用“ Dog
”模型数据。第三个必须使用“ Breed
”模型。第一和第二数据(Owner
和Dog
)是从用户输入的,并本地存储在SQLiteDatabase中,而我有Dog/Owner/SQLDataSources
类,它们实现了这些接口。
第三个数据模型是我的问题。我从互联网上下载了这个名为“ Breed”的模型列表,然后我必须将其写入数据库,然后获取List<Breed>
。
结果,我的WebBreedDataSource
从API上传了List<Breed>
,而SQLBreedDataSource
用该列表填充了数据库(TableBreed)。因此,这两个类都具有相同的方法getBreeds()
。
因此,我不知道其中哪些类必须实现IBreedsDataSource
接口?如何安排这个架构整洁?也许我应该创建另一个使用这两者的类并实现IBreed接口
答案 0 :(得分:1)
如果我正确理解了您的问题,则可能会在存储库和数据库/ api控制器之间添加另一个其他类。此类可以实现您的接口来获取您的List<Breeds>
,并且还可以在数据库和api之间进行“协调”。
例如:您想获取品种列表,好的,这个“ DataSourceCordinator”对象是这样做的:数据库是否为空?
您可能需要一些可以以某种方式协调这两个数据源的东西。
还有一点要注意,我认为存储库与您的存储库有些不同,我会将不同的数据源添加到单个存储库中,但是对于同一类型的数据-不会在一个存储库中混合不同类型的数据-只会添加不同的检索方式相同类型的数据
例如
现在在每个存储库中,我将协调这些不同的数据源。顺便说一句,这是一个不错的图!