我使用xamarinforms和prism作为mvvm,unity作为ioc容器。
我正在重构前一位员工处理过的大量重复视图和视图模型代码。他们所做的基本上是剪切和粘贴一个非常复杂的视图和视图模型。我需要改变其中的一些东西,因为这个意大利面代码,我不得不做了5次。基本上就是这样的:
这些卡片视图的5个实例及其不同的视图模型有一个主标题、3个标签和3个与标签一起的值。使用各种restful调用检索值(所有这些调用都使用各种参数来检索它们并处理调用的结果)。
我的问题是,我应该使用什么模式来简化这5个视图和视图模型,最好是将它们简化为只需要更改的1个文件?粗略地说,我认为我应该有一个viewmodel,它提供获取远程数据所需的所有文本、值和函数。但我对它似乎对我可用的所有不同方法(viewmodel接口、依赖注入、用同一viewmodel的不同实例注册模板视图的方法等)感到困惑。
使我的问题特别复杂的是,这5个不同的视图被分为棱镜模块(即.net项目)。我理解这些功能的必要性,但它们似乎只是增加了重复代码的问题,而重复代码在很大程度上起着同样的作用。也许这些应该包含restful调用和处理的逻辑?但是,从上面看,这与我的viewmodel/view关联问题有什么关系呢?
我会继续研究最好的方法来做到这一点,但我只想知道是否有人可以引导我走向最佳实践的方向?