当我开始一个新的mvvm-wpf应用程序时,通常会在一开始就包含mvvm-light。这很好用,直到我的应用程序变得越来越大。沿着这条线路,ViewModelLocator变得非常庞大(各种ChildViewodels的许多ViewModels)。更进一步,我需要同一ViewModel的多个不同实例。(例如,在同一屏幕上与项目列表交互)。这就是问题所在,如何处理好这些问题并保持代码可测试性?因此,如果我想摆脱ViewModelLocator(它是反模式吗?感觉像是ServiceLocator),我应该转向ViewModel-first,并为所有ViewModel创建(许多)抽象工厂吗?