在我们的RCP应用程序中,我们的观看次序需要C
,并使用IAdapterFactory
从A
和B
获取。问题是虽然A->C
速度很快,但B->C
要慢得多(例如,数据库或文件系统查找),应该在UI工作中完成。
我们考虑过使用CProxy
或LightweightC
并在UI工作中向代理或服务询问真实C
,但此解决方案感觉它突破了预期目的适配器,因为要求视图知道他们无法通过适配器工厂直接访问C
。
在这种情况下是否有最佳做法,或者我被迫让我的观点明白有时需要更昂贵的转换?
答案 0 :(得分:1)
我不会将Adapters用于昂贵的操作。在这种情况下,我将A或B传递给应该可视化已调整对象的视图(例如,通过SelectionService)并在目标视图中可视化正在运行的操作,通常在视图的右上角有一个进度监视器,可以看到C ,安排适应操作(作为非ui作业)和可视化C.优点是您的UI未被阻止,您也可以在此作业中调用您的适配器(通过Platform.getAdapterManager()。getAdapter(...))对于用户恕我直言,这是最透明的方式。