我学会了如何实现我自己的 SuggestionOracle(“AuSuggestOracle”)和自己的 Suggestions(“AuMultiWordSuggestion”)。在我的例子中,建议对象是用 DTO 构造的。在选择事件中,我需要这个 dto(或它的某些字段)做出适当的反应。我实现了一个小部件,其中包含 3 个建议框,带有这个特殊的预言和它们之间的一些逻辑。现在我想应用 MVP 模式 - 在演示者和视图中拆分此小部件。目前演示者显示界面如下所示:
public interface Display {
HasSelectionHandlers<Suggestion> getFedLand();
HasSelectionHandlers<Suggestion> getCounty();
HasSelectionHandlers<Suggestion> getCommunity();
AuSuggestOracle getFedLandOracle();
AuSuggestOracle getCountyOracle();
AuSuggestOracle getCommunityOracle();
void clearCounty();
void clearCommunity();
void activateForm();
Widget asWidget();
}
问题是返回“AuSuggestOracle”的方法中关于我的模型的隐含知识。所以我的问题是如何让视图/界面“谦虚”。在我的情况下,显示的建议字符串是模棱两可的,我至少需要选定项目的“id”才能知道选择了什么 DTObject。