|
|
1
0
静态视图模型听起来是个糟糕的主意(我认为静态 邪恶的 作为一般原则)。这意味着您不能拥有一个以上的ViewModel实例。我可以想到许多UI示例,其中有多个相同视图类型的实例,但对于静态视图模型,这是不可能的。 如果要启用跨视图通信, 发布/订阅 (事件)是更好的选择。 请记住,当我们谈论ViewModels/Presentation模型时,它们通常公开底层的域对象。如果有七个视图显示同一域对象的部分,则可以让域对象在更改状态时引发事件,并且任何显示该域对象数据的视图模型都可以订阅这些事件并相应地更新其控件。 |
|
|
2
1
如果你想让它成为静态的,最好实现一个适当的单例模式。您会发现测试所有使用静态模型的类是非常困难的,因为您将无法使用任何依赖倒置技术。 另外,如果您只有一个类,那么要注意并发性——您需要锁定几乎所有的东西。不好的。 最后,您可能需要考虑使用工厂模式。很容易访问,但会为每个想要使用它的类创建一个新的模型对象。并发问题(大部分)已解决。 |
|
|
Medet · 即使没有屏幕旋转,也保持ViewModel活动 8 年前 |
|
|
saradindu samal · 实现MVP设计模式的正确标准是什么 8 年前 |
|
|
Sermilion · 安卓:MVP。组件间通信的正确方式 8 年前 |
|
|
tur · CachingActivityMapper有什么意义? 10 年前 |
|
|
Jacob Phan · MVC模式。模型、视图和控制器之间的关系 10 年前 |
|
|
Lahey · MVP:被动视图(带EF)和图层 12 年前 |
|
|
Milambardo · MVP演示者在回发后订阅了活动 13 年前 |