从活动中剥离演示者的角色可以获得哪些优势?
为了剖析活动与演示者的关系,可以分离哪些角色/关注点?
为什么要将它们分成两个不同的关注点?
在什么情况下不统一它们才有意义?
举个例子,优点或缺点。
从活动中剥离演示者的角色可以获得哪些优势?
为了剖析活动与演示者的关系,可以分离哪些角色/关注点?
为什么要将它们分成两个不同的关注点?
在什么情况下不统一它们才有意义?
举个例子,优点或缺点。
我可以看到将演示者与活动分开的两个主要原因:可重用性和可测试性。
可重用性的真实用例:我们有一个插图实体,具有摄影师、版权和拍摄日期等属性,可以链接到文档。的图例是关于文档和插图之间的关系。您可以在自己的屏幕上编辑插图和图例,但我们还希望可以从图例屏幕编辑插图。所以我们为插图屏幕做了一个演示者。插图活动是对演示者的一个非常薄的包装,图例活动有点复杂,但重用了演示者和视图。活动的责任是提供RequestContext
s 并执行fire()
(保存/取消按钮在另一个活动上,类似于 Google 群组上的操作)。
可重用性的假设用例:
关于可测试性(这是理论上的),您可以在没有活动生命周期的麻烦(模拟视图)的情况下测试您的演示者,然后单独测试生命周期(它是否正确初始化和清理演示者,获取/缓存数据,等嘲笑主持人)。
另请参阅https://code.google.com/p/google-web-toolkit/source/detail?r=10185的提交消息
Ray 的想法是让 MVP 成为小部件的实现细节,就像单元小部件使用内部演示者一样今天。从外面看,它们只是小部件,您可以按照自己的方式进行组合;他们在内部使用 MVP,因此您可以在不需要GWTTestCase
.
首先,感谢您提出的两个问题,这促使我进行了有史以来最长的研究。:)
根据Thomos Broyer 的说法。
活动不能与小部件对话,演示者可以做到。
两个主要关注领域:
1-将数据放入小部件:如何改进这种设计?
Server (RequestFactory) ---> Activity ---> WidgetPresenter ---> Widget
在这里,RequestFactory
将数据交给Activity
,然后交给 ,然后Presenter
交给widget
。
2- 将数据widgets
从server
widget ---> WidgetPresenter ---> Activity ---> Server(RequestFactory)