所以我正在寻找一些说明如何从我的应用程序中删除服务定位器。
我有一个 ViewManagerService 负责了解哪个视图处于活动状态,哪些视图处于打开状态并创建一个新视图。
目前,我的 ViewModel 通过构造函数注入将 IViewManagerService 注入其中。这些 ViewModel 公开 ICommand,当被调用时可以调用
viewManager.Transition("MyCoolView", somePrimaryKey);
ViewManagerService 然后使用一个服务定位器来查找并实例化一个带有键“MyCoolView”的新视图。使用密钥字符串的原因是我可以将 View 与 ViewModel 分离。我想保持 ViewManagerService 足够通用,以便我可以将它用于其他应用程序,所以我不希望它依赖于特定的 IAbstractFactory 接口。
任何提示/建议?