CachingActivityMapper 有什么意义?
What's the point of CachingActivityMapper?
CachingActivityMapper
将 return 相同的 activity 实例,如果要求相同的 Place
两次或更多次。但是,如果我要 goTo(...)
一个等于当前位置的位置,PlaceController
将不会触发 PlaceChangeRequestEvent
(最终不会触发 PlaceChangeEvent
)。因此,监听这些事件的 ActivityManager
不会做任何事情,也就是说,在这种情况下它甚至不会向 CachingActivityMapper
请求 activity。
所以,我真的不明白 CachingActivityMapper
的意义。我错过了什么吗?
CachingActivityMapper
单独使用时几乎没有(甚至没有)用处。它实际上是介于 FilteredActivityMapper
和您的 ActivityMapper
.
之间
原来的用例是master-detail;例如,对于邮件应用程序,有 2 ActivityManager
s,一个用于邮件列表(主),另一个用于特定消息(详细信息),我们可以想象第三个带有菜单或树视图;让我们专注于 master:
- 当前位置是
MailBox("inbox")
FilteredActivityMapper
将地点按原样传递给基础 CachingActivityMapper
- 实际
ActivityMapper
return 是 "inbox" 中邮件列表的 activity
- 用户点击列表中的一封邮件,要去一个新的地方
Message(box="inbox", id="123")
FilteredActivityMapper
将位置转换为 MailBox("inbox")
-
CachingActivityMapper
return 缓存的 activity,而不实际调用包装的 ActivityMapper
;所以 ActivityManager
不会停止并启动 activity,或触摸它正在管理的 HasOneWidget
。
可以有变体,例如,detail 映射器可以缓存它看到的最后一个 Message 位置(Message地方不会包含"mail box"信息,即Message("123")
),当它收到MailBox地方时,它会通过Message 放置到底层 CachingActivityMapper
,这将 return 缓存 activity;这将允许 master 更改为新的邮箱,同时仍然在 detail 面板中显示相同的消息(GMail 与拆分显示的行为更多或不像这样)。
CachingActivityMapper
将 return 相同的 activity 实例,如果要求相同的 Place
两次或更多次。但是,如果我要 goTo(...)
一个等于当前位置的位置,PlaceController
将不会触发 PlaceChangeRequestEvent
(最终不会触发 PlaceChangeEvent
)。因此,监听这些事件的 ActivityManager
不会做任何事情,也就是说,在这种情况下它甚至不会向 CachingActivityMapper
请求 activity。
所以,我真的不明白 CachingActivityMapper
的意义。我错过了什么吗?
CachingActivityMapper
单独使用时几乎没有(甚至没有)用处。它实际上是介于 FilteredActivityMapper
和您的 ActivityMapper
.
原来的用例是master-detail;例如,对于邮件应用程序,有 2 ActivityManager
s,一个用于邮件列表(主),另一个用于特定消息(详细信息),我们可以想象第三个带有菜单或树视图;让我们专注于 master:
- 当前位置是
MailBox("inbox")
FilteredActivityMapper
将地点按原样传递给基础CachingActivityMapper
- 实际
ActivityMapper
return 是 "inbox" 中邮件列表的 activity
- 用户点击列表中的一封邮件,要去一个新的地方
Message(box="inbox", id="123")
FilteredActivityMapper
将位置转换为MailBox("inbox")
-
CachingActivityMapper
return 缓存的 activity,而不实际调用包装的ActivityMapper
;所以ActivityManager
不会停止并启动 activity,或触摸它正在管理的HasOneWidget
。
可以有变体,例如,detail 映射器可以缓存它看到的最后一个 Message 位置(Message地方不会包含"mail box"信息,即Message("123")
),当它收到MailBox地方时,它会通过Message 放置到底层 CachingActivityMapper
,这将 return 缓存 activity;这将允许 master 更改为新的邮箱,同时仍然在 detail 面板中显示相同的消息(GMail 与拆分显示的行为更多或不像这样)。