簡體   English   中英

用於更新多個字段的回調方法的最佳實現

[英]Best implementation for a callback method to update multiple fields

我正在使用Java開發使用Google Translate API的移動應用程序(BlackBerry)。 我進行了設置,以便用戶可以在登錄之前指定一種語言,然后在他們登錄后,我在屏幕上顯示的每個文本周圍都有包裝器,這些包裝器將根據所選語言翻譯文本。

我的問題是,需要在給定的屏幕上翻譯多個內容。 因此,我必須在每個屏幕上多次訪問Google Translate API。 為此,我在新線程上打開一個HTTPConnection。 因此,我將屏幕接口傳遞給Translator類,然后Translator類將為該Screen調用我的回調方法(requestSucceeded()或requestFailed())。

現在,假設我翻譯了屏幕標題和屏幕正文文本。 那是兩個單獨的HTTPConnections。 因此,在翻譯標題時,我希望我的requestSucceeded()方法在標題LabelField上設置setText。 翻譯正文后,我希望我的requestSucceeded()方法在正文LabelField上設置setText。

使我的requestSucceeded()方法區分要更新的不同字段的最佳方法是什么? 當前,我正在通過Translator將兩件事(通過String []數組)傳遞給Translator:要翻譯的文本和描述要翻譯的項目的“ cookie”。 然后,我在我的requestSucceeded()回調方法中使用if語句基於“ cookie”(譯者將與翻譯后的文本一起發回)更新相應的字段。

我覺得必須有一種更好的方法來完成所有這些工作。 有沒有人有什么建議?

謝謝!

首先,我建議您閱讀Command Pattern 基本上,這是一種設計方法,可用於將每個翻譯請求封裝在知道如何處理結果的對象中。 然后,我建議您提供一個可以插入這些命令的集合,並且您的翻譯線程可以從中獲取輸入。 這樣,您可以(取決於API的工作方式)在同一HTTP連接上處理一批翻譯請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM