如果我有一个数据/ Web服务,多个视图模型需要访问什么是首选的“MVVM方式”?
我是否拥有全局静态服务,或者是否将我的服务实例传递给我的所有视图模型?我个人看不到一种方法优于另一种方法的优势。
答案 0 :(得分:2)
传入服务的接口版本可以让您的课程轻松进行单元测试。对于全局静态,这不是那么干净或容易。
使类接受接口还定义了类的合约。你基本上是在说,“ClassA要求IServiceA和IServiceB正常运行”。对于全局静态,没有这样的合同。
答案 1 :(得分:0)
除了使用依赖注入之外,还要考虑ServiceLocater方法,其中每个ViewModel如果未传递服务实例,将调用ServiceLocator以在运行时获取已注册服务的实例。