我相信 MVVM 的主要好处之一是解耦,绑定和缺乏引用使事情更加可重用。
我发现的所有 MVVM 示例都有某种带有 ViewModel 的 View,其名称ExampleView
与ExampleViewModel
. 并且始终是一对一的关系,一个视图,一个视图模型。
但是在我当前的项目中,我有一个要填写的表单,因此可以将数据添加到数据库中,用户也可以选择编辑数据库上的数据,因此这个表单 View 可以与两个不同的 ViewModel 透明地使用,一种用于添加数据,一种用于编辑数据。我发现复制和粘贴整个 View 只是为了让它以其 ViewModel 命名有点愚蠢,不仅如此,如果我需要更改某些东西,它总是必须加倍工作,并且可能会忘记一些东西。
一些框架有一个 ViewModel 定位器,它将使用相同的命名约定自动将 View 与 ViewModel 绑定,这让我质疑 View 与许多不同 ViewModel 的可重用性。
我的问题基本上是:将一个视图与不同的视图模型一起使用是否有问题?这是不好的做法吗?这种特殊情况是否有任何命名约定?
缺乏可重用性的例子让我质疑这种做法的有效性。